При запуске Tomcat с установленным параметром unpackWARs="false"
– приложение падает с ошибкой:
Jun 17, 2014 5:47:12 PM org.apache.catalina.core.StandardContext listenerStart
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
Как видно из ошибки – проблема вызвана Log4jConfigListener
.
Для её решения – необходимо установить параметр:
<context-param> <param-name>log4jExposeWebAppRoot</param-name> <param-value>false</param-value> </context-param>
в файл WEB-INF/web.xml
проекта.
Подробнее можно посмотреть тут>>>.
В результате – настройки log4j в файле web.xml
буду выглядеть так:
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>file:/${LOG4J}</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>180000</param-value> </context-param> <context-param> <param-name>log4jExposeWebAppRoot</param-name> <param-value>false</param-value> </context-param>
Где переменная ${LOG4J}
указывает на файл настроек:
$ echo $LOG4J /home/user/tomcat/conf/log4j.xml