>Java >java지도 시간 >\'상수 풀의 잘못된 바이트 태그: 15\' - Java 8에서 실행할 때 Tomcat 7이 이 오류를 발생시키는 이유는 무엇입니까?

\'상수 풀의 잘못된 바이트 태그: 15\' - Java 8에서 실행할 때 Tomcat 7이 이 오류를 발생시키는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-04 13:07:301125검색

상수 풀의 잘못된 바이트 태그: Java 8의 Tomcat 문제

"상수 풀의 잘못된 바이트 태그: 15" 오류 발생 Tomcat 7에서 Java 8과 함께 Tomcat 7을 실행하는 다른 서버로 웹앱을 포팅하려고 할 때? 이 문서에서는 문제를 자세히 살펴보고 해결 방법을 제공합니다.

문제 설명:

Tomcat을 시작할 때 catalina.out 로그에 표시된 대로 애플리케이션에 오류가 발생할 수 있습니다.

org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15

가능한 원인:

Tomcat 7에서 사용하는 클래스 구문 분석 라이브러리인 BCEL이 지원되지 않을 수 있는 새로운 바이트 코드를 Java 8에 도입했기 때문에 오류가 발생했습니다. 효과적으로 처리할 수 있습니다.

솔루션:

공식 솔루션:

Tomcat 설명서에 따르면 Java에서 Tomcat 7을 실행합니다. 8은 정상적으로 작동합니다.

주석 검색 문제:

그러나 웹 애플리케이션의 web.xml 파일에서 주석 검색이 활성화된 경우 BCEL의 불가능으로 인해 문제가 나타날 수 있습니다. Java 8바이트 코드를 처리합니다. 이러한 경우 아래와 같은 예외가 나타날 수 있습니다.

SEVERE: Unable to process Jar entry [jdk/nashorn/internal/objects/NativeString.class] from Jar [jar:file:/usr/lib/jvm/jdk1.8.0_5/jre/lib/ext/nashorn.jar!/] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15

주석 검색 솔루션:

  1. 주석 검색 비활성화: 주석 검사를 활성화하지 마세요(web.xml에서 메타데이터-완전="true"를 false로 설정). 이를 통해 Tomcat 7이 정상적으로 작동할 수 있습니다. 그러나 이 솔루션은 웹앱에서 주석 검색을 비활성화합니다.
  2. Tomcat 업데이트: Java 8을 더 잘 지원하도록 업데이트된 컴파일러가 포함된 Tomcat 7.0.53 이상으로 업그레이드하세요.
  3. 문제가 있는 Jar 제외: 주석 검사를 사용해야 하고 코드가 Java 8 기반이 아닌 경우 /etc/tomcat7/catalina.properties에 다음 줄을 추가하세요.
junit.jar,junit-*.jar,ant-launcher.jar,\
jfxrt.jar,nashorn.jar

이 수정을 통해 Tomcat은 주석 스캔 중에 문제가 있는 jar를 건너뜁니다.

위 내용은 \'상수 풀의 잘못된 바이트 태그: 15\' - Java 8에서 실행할 때 Tomcat 7이 이 오류를 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.