반응형
이번 log4j 버전 이슈로 업데이트를 하는 와중에 로컬 환경과 jenkins(Ant)에서 서버를 시작할 때 META-INF/versions/9/...와 같은 오류가 났습니다. 왜 발생하는지와 해결방법을 공유하겠습니다.
에러 내용
[WEB-3911] Processing @HanlesTypes of ServletContainerInitializers
failed for the class [META-INF/versions/9/org/apache/logging/log4j/util/StackLocator.class]
but the deployment process will continue.
<<__Exception__>>
java.lang.IllegalArgumentException
...
log4j-core-2.16.jar
...
원인
추가한 jar의 java 버전이 빌드하는 톰캣, 젠킨스의 지원 버전과 맞지 않을 때 발생하는 오류입니다.
에러 로그를 찾아보면 문제의 jar파일이 찍힐 것이고, 파일을 열어보면 지원하지 않는 class를 호출하기 때문에 발생합니다.
해결방법
추가한 log4j-core-2.16.jar는 java 8이상에서 지원되는 파일이었습니다. jar를 까보면
레거시는 이미 jdk 1.8인데,
jenkins 설정이 1.7로 되있어서 젠킨스 설정을 변경했습니다.
(build.sh, build.properties 등)
(Maven의 경우 pom.xml, Gradle은 build.gradle 혹은 settings.gradle 등)
톰캣은 자바8 이상 지원하는 버전으로 업데이트로 해결했습니다.
(당시 버전 apache-tomcat-7.0.99)
거의 없긴하지만 레거시가 jdk 1.7버전이면 적용한 jar의 버전을 맞춰서 낮추는 수 밖에 ㅠ
그리드형
'IT > Etc' 카테고리의 다른 글
[Webtob] 시스템 도메인(주소) 변경 방법 (0) | 2022.05.26 |
---|---|
KCP 오류 관련 내용 모음 (0) | 2022.05.02 |
DRM 걸린 PDF 파일이 안 열릴 때 해결방법 (0) | 2021.11.25 |
Cache.getResource 조치 (0) | 2021.11.01 |
win10 키보드 띄어쓰기 오류 ㅋㅣㅂㅗㄷㅡ ㄸㅡㅣㅇㅓㅆㅡㄱㅣ ㅇㅗㄹㅠ (24) | 2021.10.21 |
댓글