[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
리 셋 간격,단위 밀리초log4jConfigLocation
은log4j
파일 경 로 를 설정 하고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
을 정 의 했 거나 정의 가 없 었 기 때 문 입 니 다!즉,key
은webapp.root
이미 항목itoo-exam-calculatescore-web
을 가리 키 고 가리 키 지 않 는 다itoo-exam-scoreanalyze-web
.웹 응용 서버JBoss/Tomcat
는 서로 다른 웹 응용 에 독립 된 시스템 매개 변 수 를 사용 하지 않 습 니 다.즉,응용 서버JBoss/Tomcat
의 모든 웹 응용 은 하나의 시스템 매개 변수 대상webAppRootKey
을 공유 하고 기본 값 은“webapp.root”
이다.여러 웹 애플 리 케 이 션 을 실행 할 때webAppRootKey
컨 텍스트 매개 변수 에 따라 서로 다른 웹 애플 리 케 이 션 에 서로 다른 속성 명 을 지정 해 야 여러 웹 애플 리 케 이 션 이 같은 것webAppRootKey
을 가리 키 지 않 습 니 다.webAppRootKey
web
프로젝트 의 루트 디 렉 터 리 가 시스템 환경 변수 에 있 는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 오류 던 지기)]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.