2014-06-20 11 views
6

Ottenere il sottostante grave eccezione quando si tenta di eseguire tomcat in Suite Strumento di primavera:SEVERE: eccezione 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) 

risposta

5

Non utilizzare Log4jConfigListener all'interno di una guerra che non è espanso; probabilmente lo è necessario renderlo ancora più chiaro.

Esistono solo due vantaggi: Log4jWebConfigurer: - aggiorna la configurazione di Log4J quando il file di configurazione Log4J cambia; - consente di utilizzare i percorsi dei file di registro relativi alla radice dell'applicazione Web.

Entrambi non sono applicabili quando WAR non è espanso, quindi non c'è alcun punto in utilizzando Log4jWebConfigurer in tale scenario. Basta fare affidamento sull'inizializzazione predefinita di Log4J da un file log4j.properties nella radice del classpath.

BTW, potreste aver notato che Log4jConfigListener è commentato out nel Petclinic e di Paesi web.xml, per motivi connessi: Per essere in grado di distribuire guerre che non sono espansi, e di lavorare senza problemi in JBoss (che ha il suo uso speciale di Log4J .

Juergen

Problemi correlati