728x90
심각: Error listenerStart
2006. 6. 16 오후 2:23:36 org.apache.catalina.core.StandardContext start
심각: Context [/dyna] startup failed due to previous errors
661 DEBUG 14:23:36 StandardContext.filterStop:3622 - Stopping filters
671 INFO 14:23:36 ApplicationContext.log:638 - Shutting down Log4J
2006. 6. 16 오후 2:23:36 org.apache.catalina.core.StandardContext start
심각: Context [/dyna] startup failed due to previous errors
661 DEBUG 14:23:36 StandardContext.filterStop:3622 - Stopping filters
671 INFO 14:23:36 ApplicationContext.log:638 - Shutting down Log4J
이런 류의 로그와 함께...
어플리케이션의 문제가 아니라.. 설정에서 나오는 것이라 디버깅이 까다롭다.
일단, web.xml에서 아래 부분을 제거하면 문제는 사라진다.
<!-- Spring Context 파일 경로 설정 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/dao-context.xml
/WEB-INF/spring/application-context.xml
</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/dao-context.xml
/WEB-INF/spring/application-context.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
결국 문제는..
<!-- Log4J 로딩 설정 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<!-- Spring Context 파일 경로 설정 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/dao-context.xml
/WEB-INF/spring/application-context.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
위와 같이 Log4J 리스너 이후에 컨텍스트 파일을 로딩하도록 설정해야 한다는 점이다.
Spring API에서 이를 명시했다.
분명히 알고 있던 내용이지만... 이유가 불분명하기 때문에.. 자주 까먹는다. ^^;
This listener should be registered after Log4jConfigListener in web.xml, if the latter is used.
로그4J 먼저, 컨텍스트 파일 나중..
728x90