Tomcat ClassFormatException: Java 8 호환성 문제 탐색
Java 7이 포함된 Tomcat 7에서 Java 8이 포함된 Tomcat 7로 웹 애플리케이션을 배포하면 때때로 트리거될 수 있습니다. 다음 예외:
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15
근본 원인 이해
Tomcat 7은 Java 8과 호환되지만 주석 검색을 활성화합니다(metadata-complete="true"). web.xml)은 새로운 Java 8 바이트 코드를 완전히 처리할 수 없는 BCEL(Byte Code Engineering Library)의 제한으로 인해 잠재적인 문제를 야기합니다. 이로 인해 Tomcat이 주석을 검색하려고 할 때 오류가 발생합니다.
잠재적 해결 방법
1. 주석 스캔 비활성화(권장하지 않음)
주석 스캔 사용을 피할 수 있다면 모든 것이 올바르게 작동해야 합니다. 이를 비활성화하려면 web.xml에서 Metadata-complete를 "false"로 설정하세요.
2. Tomcat 7.0.53 이상으로 업데이트(권장)
Tomcat 7.0.53부터 기본 컴파일러가 향상된 Java 8 지원으로 업데이트되어 대부분의 주석 검색 문제가 해결되었습니다.
3. 검사에서 특정 JAR 제외(중간 솔루션)
Tomcat 7.0.53으로 업그레이드할 수 없지만 여전히 주석 검사가 필요한 경우 /etc/tomcat7/catalina에 다음 줄을 추가해 볼 수 있습니다. .properties:
junit.jar,junit-*.jar,ant-launcher.jar,\ jfxrt.jar,nashorn.jar
이렇게 하면 Tomcat이 이러한 특정 JAR의 주석 스캔을 건너뛰도록 지시하여 잠재적으로 문제를 해결할 수 있습니다.
위 내용은 Tomcat ClassFormatException: 주석 검색으로 Java 8 호환성 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!