2014-06-20 8 views
6

die unter schwerer Ausnahme bekommt bei dem Versuch, tomcat im Frühjahr Tool Suite auszuführen:SCHWERE: Ausnahme org.springframework.web.util.Log4jConfigListener

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener 
java.lang.IllegalStateException: Cannot set web app root system property when WAR file is not expanded 
at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:143) 
at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:117) 
at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:45) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

Antwort

5

nicht Log4jConfigListener innerhalb eines IST verwenden, die nicht ist erweitert; wir müssen wahrscheinlich das noch deutlicher machen.

Es gibt nur zwei Vorteile, die Ihnen bietet: - aktualisiert die Log4J-Konfiguration, wenn sich die Log4J-Konfigurationsdatei ändert; - ermöglicht die Verwendung von Protokolldateipfaden relativ zum Webanwendungsstamm.

Beide sind nicht anwendbar, wenn der WAR nicht erweitert wird, also gibt es keinen Sinn mit Log4jWebConfigurer in einem solchen Szenario. Verlassen Sie sich einfach auf Log4Js Standardinitialisierung aus einer log4j.properties Datei im Stammverzeichnis des Klassenpfads.

BTW, haben Sie vielleicht bemerkt, dass Log4jConfigListener wird kommentiert-out in Petclinic der und Länder web.xml, für einen ähnlichen Grund: Um in der Lage zu sein WARs zu implementieren, die nicht erweitert werden, und ohne Aufwand in JBoss zu arbeiten (die hat seine eigene spezielle Nutzung von Log4J).

Juergen

Verwandte Themen