티스토리 뷰
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19 at
SieunLim 2021. 4. 27. 11:43정보: Starting Servlet Engine: Apache Tomcat/7.0.47
심각: Unable to process Jar entry [META-INF/versions/11/module-info.class] from Jar [jar:file:/C:/Users/PC/.m2/repository/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar!/] for annotations org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19 at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:133) at org.apache.tomcat.util.bcel.classfile.ConstantPool.(ConstantPool.java:60) at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:209) at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:119) at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2134) at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:2010) at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1976) at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1961) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1319) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
[개발환경]
- 자바 8
- 톰캣 7.0.47
- 스프링
[원인] 톰캣이 자바버전에 완벽히 호환되지 않는다.
[설명] 톰캣 7에서 사용되는 BCEL 라이브러리의 몇몇 기능들이 자바8 바이트 코드 형식과 호환되지 않는다.
[해결]
1. 톰캣 8 업그레이드
2. 그냥 쓴다
- 톰캣 공식 홈페이지 에 따르면 톰캣 7은 자바6 이상에서 사용 가능하다고 명시되어 있으며 사용에 큰 문제는 없다.
하지만 몇몇 블로그에 Web.xml 에서 metadata-complete="true"를 추가하여 해결한다고 나와있는데..
metadata-complete를 true 로 설정할 경우
자바 자체 서블릿 어노테이션 기능인 @WebServlet, @WebFilter, and @WebListener 등이
스캔되지 않아 작동하지 않음으로 매우 위험하다.
(오라클 서블릿 상세설명서 에서 metadata-complete키워드 검색하여 참고)
물론, 스프링 프레임워크는 스프링 자체 컨테이너를 사용하기 때문에 상관이없다.
그래도 metadata-complete는 왠만하면 피하는걸로...
'▶ 오류 모음' 카테고리의 다른 글
- Total
- Today
- Yesterday
- mybatis
- Web
- 마틴 파울러
- 웹
- 스프링
- 아파치
- 인터넷
- Spring
- tomcat
- 서버
- WWW
- java
- 인터넷이란
- spring security
- 오류
- 톰캣
- tomcat 오류
- Apache와 Tomcat
- mapper
- 자바 오류
- org.apache.tomcat.util.bcel.classfile.ClassFormatException
- DTO
- Vo
- internet
- Entitiy
- world wide web
- 스프링 시큐리티
- Apache
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |