[JAVA 오류 조정]-JBoss 가 여러 항목 을 발표 할 때 webAppRootkey 오 류 를 던 집 니 다.

  • 잘못된 유래
  • 오류 원인
  • 오류 해결 방안
  • 첫 번 째
  • 두 번 째

  • 잘못된 유래
        이 유 를 말 해 보 세 요.최근 프로젝트 에 로 그 를 추가 하고 프로젝트 에 spring 모니터 를 추가 하 였 습 니 다.
    <context-param>
            <param-name>log4jConfigLocation</param-name>
            <param-value>/WEB-INF/classes/config/log4j.xml</param-value>
        </context-param>
        <!--    watchdog   1800     log4j        -->
        <context-param>
            <param-name>log4jRefreshInterval</param-name>
            <param-value>1800000</param-value>
        </context-param>
        <!--spring log4j    -->
        <listener>
            <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
        </listener>
    log4jRefreshInterval리 셋 간격,단위 밀리초log4jConfigLocationlog4j파일 경 로 를 설정 하고classpath:xxx형식 으로 도 사용 할 수 있 습 니 다.
        위 와 같이 설정 한 후 수정log4j.xml한 후 간격 을 새로 고침 한 후 설 정 된 모니터Log4jConfigListener는 관련 설정 을 다시 불 러 옵 니 다log4j.
        그리고 JBoss 에서 프로젝트 를 시작 합 니 다.단일 프로젝트 를 시작 하면 문제 가 없 지만 두 개 이상 동시에 시작 할 때 다음 과 같이 보고 합 니 다ERROR.
    20:54:07,883 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/itoo-exam-scoreanalyze-web]] (ServerService Thread Pool -- 55) JBWEB000287: 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' = [F:\Program Files\jboss-eap-6.2-itoo4.0\standalone\deployments\itoo-exam-calculatescore-ear.ear\itoo-exam-calculatescore-web.war\] instead of [F:\Program Files\jboss-eap-6.2-itoo4.0\standalone\deployments\itoo-exam-scoreanalyze-ear.ear\itoo-exam-scoreanalyze-web.war\] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files! at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:150) [spring-web-4.0.9.RELEASE.jar:4.0.9.RELEASE] at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:117) [spring-web-4.0.9.RELEASE.jar:4.0.9.RELEASE] at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:46) [spring-web-4.0.9.RELEASE.jar:4.0.9.RELEASE] at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1] at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_60] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_60] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_60] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_60] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_60] at org.jboss.threads.JBossThread.run(JBossThread.java:122) 

    오류 원인
        위의 이상 에서 뚜렷 한 힌트:
    Web app root system property already set to different value: 'webapp.root' = [F:\Program Files\jboss-eap-6.2-itoo4.0\standalone\deployments\itoo-exam-calculatescore-ear.ear\itoo-exam-calculatescore-web.war\] instead of [F:\Program Files\jboss-eap-6.2-itoo4.0\standalone\deployments\itoo-exam-scoreanalyze-ear.ear\itoo-exam-scoreanalyze-web.war\] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!

        인터넷 에서 찾 아 봤 는데 발생 한 이 유 는 두 웹 프로젝트 가 같은 용기 에서 같은webAppRootKey을 정 의 했 거나 정의 가 없 었 기 때 문 입 니 다!즉,keywebapp.root이미 항목itoo-exam-calculatescore-web을 가리 키 고 가리 키 지 않 는 다itoo-exam-scoreanalyze-web.웹 응용 서버JBoss/Tomcat는 서로 다른 웹 응용 에 독립 된 시스템 매개 변 수 를 사용 하지 않 습 니 다.즉,응용 서버JBoss/Tomcat의 모든 웹 응용 은 하나의 시스템 매개 변수 대상webAppRootKey을 공유 하고 기본 값 은“webapp.root”이다.여러 웹 애플 리 케 이 션 을 실행 할 때webAppRootKey컨 텍스트 매개 변수 에 따라 서로 다른 웹 애플 리 케 이 션 에 서로 다른 속성 명 을 지정 해 야 여러 웹 애플 리 케 이 션 이 같은 것webAppRootKey을 가리 키 지 않 습 니 다.webAppRootKeyweb프로젝트 의 루트 디 렉 터 리 가 시스템 환경 변수 에 있 는key오류 해결 방안
        두 가지 해결 방안 이 있다.
    제 1 종
        문서 수정web.xml,프로젝트 자체 지정webAppRootKey
    <!--   app1 web.xml   --> 
    <context-param>  
        <param-name>webAppRootKey</param-name>  
        <param-value>app1.root</param-value>  <!--   "webapp.root"           -->
    </context-param>  
    
    -------------------        --------------------
    
    <!--   app2 web.xml   -->  
    <context-param>  
        <param-name>webAppRootKey</param-name>  
        <param-value>app2.root</param-value>  <!--   "webapp.root"           -->
    </context-param>  

    두 번 째
         수정web.xml
        <context-param>
            <param-name>log4jExposeWebAppRoot</param-name>
            <param-value>false</param-value>
        </context-param>
    log4jExposeWebAppRoot환경 변 수 를 설정 할 지 여부 입 니 다.선택 할 수 있 습 니 다true/false.
    웹 응용 루트 시스템 속성 이 노출 되 었 는 지 여부 입 니 다.웹 응용 루트 디 렉 터 리 경로 에 비해 로그 파일 을 얻 을 수 있 습 니 다.기본 값 은'true'입 니 다.웹 애플 리 케 이 션 의 루트 시스템 속성 을 노출 하지 않도록'false'로 설정 할 수 있 습 니 다.
    [전재 출처 밝 혀 주세요:바 빠 요([JAVA 오류 조정]-JBoss 가 여러 항목 을 발표 할 때 webAppRootkey 오류 던 지기)]

    좋은 웹페이지 즐겨찾기