SEVERE: исключение org.springframework.web.util.Log4jConfigListener
Получение нижеуказанного серьезного исключения при попытке запустить tomcat в Spring Tool Suite:
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)
2 ответа
Не использовать
Log4jConfigListener
в рамках войны, которая не расширена; нам, вероятно, нужно сделать это еще яснее.Есть только два преимущества, которые
Log4jWebConfigurer
дает вам: - обновляет конфигурацию Log4J при изменении файла конфигурации Log4J; - позволяет использовать пути к файлам журналов относительно корня веб-приложения.И то и другое не применимо, когда WAR не расширен, поэтому нет смысла использовать
Log4jWebConfigurer
по такому сценарию. Просто положитесь на инициализацию по умолчанию Log4J изlog4j.properties
файл в корне пути к классам.Кстати, вы могли заметить, что
Log4jConfigListener
комментируется в Petclinic's and Country 'web.xml
по связанной причине: чтобы иметь возможность развертывать WAR, которые не развернуты, и работать без хлопот в JBoss (который имеет свое специальное использование Log4J).Юргена
Log4jConfigListener работает только в случае разрыва файла WAR. Прочитайте эту статью: http://community.jaspersoft.com/wiki/illegalstateexception-while-deploying-war-file-weblogic