정보: validateJarFile(\WEB-INF\lib\javax.servlet-api-3.1.0.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
2월 18, 2022 5:08:39 오후 org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
정보: validateJarFile(\WEB-INF\lib\jsp-api-2.1.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/el/Expression.class
2월 18, 2022 5:08:39 오후 org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
정보: validateJarFile(\WEB-INF\lib\servlet-api-2.5.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
2월 18, 2022 5:08:48 오후 org.apache.catalina.startup.ContextConfig processAnnotationsJar
심각: Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:/WEB-INF/lib/log4j-api-2.17.0.jar!/] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
대략 두달전 Log4j 보안관련 이슈에 대해 전 세계적으로 버전 변경 권고가 있었다.
내가 작업하는 곳에서는 톰캣 관련 버전 이슈가 없었으나 낮은 버전 톰캣 환경에서 정상적으로 적용이 되지 않는 것으로 확인된다.
해결 방법은 매우 간단하다.
* pom.xml 파일
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>
해당 dependency 에서 version 정보를 2.7로 바꿔주면 된다.
이렇게 안되면 다른 이슈라고 생각하면 된다.
대개 Slf4j, JDK logging가 호환되지 않아서 생기는 이슈일 것이다.
사실 Log4j 2.17.0 버전에서는 아파치에서 톰캣 버전을 9.0이상으로 권장하고 있다.
그렇지만 대한민국 웹 환경에서 버전을 맘대로 바꾸는 것이 쉬운가?
임시로 땜빵하고 장기적으로 톰캣 버전을 올리는 방향으로 가자..
'Stack Overflow > 스프링' 카테고리의 다른 글
[스프링] Spring REST API 데이터 JSON 송수신 가능하도록 간단하게 구현, 생성하기 (추가로 LIST 작업) (6) | 2022.02.23 |
---|---|
[스프링] Internal Server Error 예외 오류가 났을 때 원인 찾는 방법 (4) | 2022.02.22 |
[스프링] jsp 버튼 클릭 시 AJAX 여러번 호출 막기 (1번만 눌러지게 하기) (4) | 2022.02.10 |
[스프링] JSP 검색어 따른 데이터 배열 리스트 목록 결과 실시간 필터링 개발 (팝업) (4) | 2022.02.09 |
[스프링] 체크박스 한번에 모든 것을 disabled 구분하면서 선택, 해제하기 (4) | 2022.01.29 |
댓글