본문 바로가기
트러블슈팅/MW

[웹로직] User defined listener org.springframework.web.util.Log4jConfigListener failed

by sangyeon 2021. 8. 23.
728x90

WLS에서 Spring Framework 기반의 Application을 war로 배포할 경우 아래와 같은 에러가 발생한다.

####<2020. 10. 08 오후 2시 42분 53초 KST> <Warning> <HTTP> <localhost.localdomain> <managed1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1334586233529>
<BEA-101162><User defined listener org.springframework.web.util.Log4jConfigListener failed: java.lang.IllegalStateException: Cannot set web app root system property when WAR file is not expanded.
java.lang.IllegalStateException: Cannot set web app root system property when WAR file is not expanded
at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:139)
at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:118)
...

1. 원인

해당 에러는 Spring에서 사용하는 log4j 문제로써 아카이브된 웹 응용 프로그램에 대한 Real Path를 가져오지 못해서 발생한다.

Log4jConfigListener의 java doc에도 warning으로 설명되어 있습니다.

WARNING: Assumes an expanded WAR file, both for loading the configuration file and for writing the log files. If you want to keep your WAR unexpanded or don't need application-specific log files within the WAR directory, don't use Log4J setup within the application(thus, don't use Log4jConfigListener or Log4jConfigServlet). Instead, use a global, VM-wide Log4J setup (for example, in JBoss) or JDK 1.4'sjava.util.logging (which is global too).

2. 솔루션

1. Admin Console 접속합니다.

“[DOMAIN_NAME] – [구성] – [웹 애플리케이션] – 아카이브된 실제 경로 사용 Check 후 활성화 합니다.

2. Admin Server와 Managed Server 모두 재기동 한다.

재기동 해야 변경사항이 반영 됨.

 

 

728x90