LogManager Ausnahme in JBOSS AS 7.1 mit java.util.Logger
Erstellte ich eine java-Anwendung und initialisieren von java.util.Logger mit dieser Anwendung und führen Sie diese Anwendung als -javaagent
mit jboss AS 7 server und ich habe IllegalStateException
(ich bin mit eclipse IDE).Hier folgt meine logger-Initialisierung-code
static public void setup() throws IOException {
//Get the global logger to configure it
Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
logger.setLevel(Level.INFO);
fileTxt = new FileHandler("C:/Users/abc/Desktop/ATAGENT/Logging.txt");
fileHTML = new FileHandler("C:/Users/abc/Desktop/ATAGENT/Logging.html");
//create txt Formatter
formatterTxt = new SimpleFormatter();
fileTxt.setFormatter(formatterTxt);
logger.addHandler(fileTxt);
//create HTML Formatter
formatterHTML = new BMITHtmlFormatter();
fileHTML.setFormatter(formatterHTML);
logger.addHandler(fileHTML);
}
Wenn ich -javaagent
jar angehängt mit den oben Zeilen code, und führen Sie mit jboss as7 server bekam ich folgende Ausnahme
WARNING: Failed to load the specified log manager class org.jboss.logmanager.LogManager
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.jboss.as.server.Main.main(Main.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.modules.Module.run(Module.java:260)
at org.jboss.modules.Main.main(Main.java:291)
Caused by: java.lang.IllegalStateException: The LogManager was not properly installed (you must set the "java.util.logging.manager" system property to "org.jboss.logmanager.LogManager")
at org.jboss.logmanager.Logger.getLogger(Logger.java:60)
at org.jboss.logmanager.log4j.BridgeRepositorySelector.(BridgeRepositorySelector.java:42)
... 7 more
Und ich serched in fourms und ich bekam eine Lösung, die Offen ist, die Start-Konfiguration für die server-definition.
und fügen Sie -logmodule org.jboss.logmanager
dem Programm Argumente vor org.jboss.as.standalone
.
Aber es ergibt sich die gleiche Ausnahme mit einigen zusätzlichen Warnung. Hier folgt die Ausnahme
WARNING: -logmodule is deprecated. Please use the system property 'java.util.logging.manager' or the 'java.util.logging.LogManager' service loader.
WARNING: Failed to load the specified log manager class org.jboss.logmanager.LogManager
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.jboss.as.server.Main.main(Main.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.modules.Module.run(Module.java:260)
at org.jboss.modules.Main.main(Main.java:291)
Caused by: java.lang.IllegalStateException: The LogManager was not properly installed (you must set the "java.util.logging.manager" system property to "org.jboss.logmanager.LogManager")
at org.jboss.logmanager.Logger.getLogger(Logger.java:60)
at org.jboss.logmanager.log4j.BridgeRepositorySelector.(BridgeRepositorySelector.java:42)
... 7 more
InformationsquelleAutor Anish Antony | 2014-01-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem mit JBOSS EAP 6, nehmen Sie es mir 2 Tage für eine Lösung finden !.
Die Ursache ist, dass Ihre Agenten müssen, erstellen Sie einen Logger an statup, er muss in der Lage sein, um Zugriff auf die logmanager-Klassen vor der JBOSS-Module initialisiert wurde. Müssen Sie die JBoss-Software LogManager, um den boot-classloader. Dann gibt es einen Konflikt zwischen LogManager über ModuleClassLoader und Klassen geladen werden über die system-classloader.
Die Lösung ist, um Java-Agent-und JBoss-Module nutzen die gleichen classloader zum laden der LogManager Klassen.
Für EAP 6, In Ihrem eigenständigen.conf (oder-domain) (Es muss in der Nähe sein für Ihre version)
hinzufügen
und für die Java-Agents und JBoss-Module nutzen die gleichen classloader
ändern, dieses Stück code hinzufügen org.jboss.logmanager wie diese :
Hoffe, das wird helfen.
vielen Dank, funktioniert einwandfrei!
In windows die syntax ist anders: z.B. set "JAVA_OPTS=%JAVA_OPTS% -Djboss.Module.system.pkgs=org.jboss.byteman,org.jboss.logmanager" und set "JAVA_OPTS=%JAVA_OPTS% -Xbootclasspath/p:%JBOSS_HOME%\modules\org\jboss\logmanager\main\jboss-logmanager-1.3.2.Final.jar
für 6.4 der richtige Weg ist $JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.4.Final-redhat-1.jar
ein weiterer wichtiger Punkt ist, müssen Sie den genauen Pfad, wenn ich * in der jar-name, nicht die Gläser.
InformationsquelleAutor bdurand
Fand ich die Lösung nach der Suche für ein paar Tage in den folgenden link.
https://github.com/jbossas/jboss-as-maven-plugin/issues/40#issuecomment-14943429
Habe ich zu zwicken, ein bisschen zu bekommen, ist die Arbeit in Windows 7.
"-Djboss.Module.system.pkgs=org.jboss.byteman,org.jboss.logmanager"
"-Djava.util.die Protokollierung.manager=org.jboss.logmanager.LogManager"
Wählen Sie nun den Classpath REGISTERKARTE
a) jboss-logmanager-1.2.0.GA.jar
b) jboss-logmanager-log4j-1.0.0.GA.jar
c) log4j-1.2.16.jar
Pfade
Dadurch wird die eigenständige jboss-Software ohne Probleme.
InformationsquelleAutor cyeluri
In der EAP-6.4, die richtige logmanager Weg sein sollte
$JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.4.Final-redhat-1.jar
InformationsquelleAutor Matt