Das habe ich getan, damit die Dinge richtig funktionieren (in pom.xml
):
Funktioniert jetzt gut. Das ist mein test/resources/jndi.properties
:
Dies ist test/resources/log4j.properties
:
Jetzt kann ich die Protokollierung von OpenEJB während des Tests optimieren, dank Davids Unterstützung:)
Beachten Sie, dass die Overriding-Fähigkeit, die Sie mit dem OpenEJB-Logger erhalten, sowohl mit Systemeigenschaften als auch mit InitialContext-Eigenschaften funktioniert.
Die Eigenschaft openejb.logger.external
richtet sich in Wirklichkeit an Server, die OpenEJB integrieren, wie z. B. Geronimo, die unterschiedliche Protokollierungssysteme verwenden und erweiterte Kontrolle über die Protokollierung benötigen. Es ist nicht für den allgemeinen Gebrauch gedacht, da diese Option aktiviert ist und keine anderen Schritte unternommen werden. Sie erhalten no logging jeglicher Art, nicht einmal ERROR und keine Informationen über fehlgeschlagene Bereitstellungen. Selbst die korrekte Verwendung deaktiviert weiterhin alle unten beschriebenen Optionen.
Wenn der Wunsch besteht, die Protokollierungskonfiguration in oder aus dem Test zu bekommen, gibt es viele Möglichkeiten, dies zu tun, ohne dass irgendwelche Protokollierungsfunktionen verloren gehen, die OpenEJB bietet.
Im Testfall selbst über InitialContext-Eigenschaften
%Vor%Die Datei muss sich im Klassenpfad bei jedem Pfad befinden, der zu "/jndi.properties" ausgewertet wird, also nicht "/META-INF/jndi.properties"
In Maven kann dies getan werden, indem die Datei in src/test/resources/jndi.properties
Hier ist ein kurzes Video der obigen Option in Aktion.
Beachten Sie, dass das Suchen und Lesen der Datei jndi.properties eine Funktion von java vm ist Wenn dies nicht funktioniert, ist es eher ein Konfigurationsproblem als ein vm-Fehler.
Beachten Sie auch, dass alle oben genannten Techniken sofort verwendet werden können, einschließlich aller Überschreibungen, die Sie in einzelne Testfälle einfügen möchten. Die Rangfolge ist wie folgt:
Wie immer sind wir sehr glücklich, die Dinge so einfach wie möglich zu machen. Wenn Sie ein bestimmtes Bedürfnis oder eine bestimmte Idee haben, können wir es gerne ausprobieren oder Ihnen helfen, wenn Sie etwas beitragen möchten.
Laut Konfigurieren der Anmeldung bei Tests können Sie die Standardprotokollierungskonfiguration überschreiben:
InitialContext
creation time ~ or ~ embedded.logging.properties
auf dem Klassenpfad Das ist der empfohlene Ansatz.
Alternativ können Sie die gesamte Standardkonfiguration deaktivieren und eigene angeben:
Sie können "openejb.logger.external" als Systemeigenschaft auf "true" setzen (funktioniert nicht als InitialContext-Eigenschaft). Dann wird OpenEJB nicht versuchen, die Protokollierung überhaupt zu konfigurieren, und Sie können die Protokollierung mit Log4j direkt mit einer seiner APIs konfigurieren. XML, Eigenschaften oder Code.