programming/jsp

[tomcat] error - Choose unique values for the 'webAppRootKey' context-param in your web.xml files

labj 2015. 3. 19. 10:29

[tomcat] error - Choose unique values for the 'webAppRootKey' context-param in your web.xml files


log설정파일.zip




19-Mar-2015 10:04:08.346 SEVERE [tadmin.libro.co.kr-startStop-1] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
 java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [D:\libromadmin\SWLLS\] instead of [D:\libromanager\ROOT\] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
    at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:150)
    at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:116)
    at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:45)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4728)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5162)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:917)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1701)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)


[해결방법 1]

스프리에서 자동 생성되는 log4j를 사용할 때 webAppRootKey의 기본값이 webapp.root 되어 있어서
서로 다른 웹어플리케이션에서도 중복되어 다음과 같은 오류가 발생합니다.

각 웹어플리케이션의 web.xml에 다음처럼 추가해 주시면 됩니다.

    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>[유니크한 임의의 문자열]</param-value>
    </context-param>



[해결방법 2]

* log4j 사용 방법 하나
1. Spring Project>Spring MVC Project로 생성된 log4j를 삭제하고
 - log4j.properties
 - log4j.xml

2. 다음 첨부 파일 복사합니다.
 - log4j.dtd
 - log4j.xml

3. lpog4j.xml을 텍스트에디터로 열고 다음을 수정합니다.
1) <!-- 지정된 경로의 파일에 일별로 로그를 표시 --> 의 file value
2) <!-- 패키지 단위로 로깅 레벨을 설정 --> 은 level이 DEBUG로 맞추어져 있습니다.
3) <!-- 전체 기본 로깅 설정 -->은 파일을 저장하기 위한 rolling과 이클립스 Console에서 보기 위한 console로 되어 있습니다.


4. 로그를 남기기 위해서 java 파일에 다음처럼 코드를 추가합니다.

    private static final Logger logger = LoggerFactory.getLogger([class명].class);
  logger.debug("로그내용");


5. 생성된 로그는 lpog4j.xml의 rolling에 설정한 위치에 로그파일이 남습니다.




[tomcat] error - Choose unique values for the 'webAppRootKey' context-param in your web.xml files