> Java > java지도 시간 > 본문

Java 8이 설치된 Tomcat 7에서 \'상수 풀의 잘못된 바이트 태그: 15\' 예외가 발생하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-27 08:40:03
원래의
1018명이 탐색했습니다.

Why am I Getting

Java 8이 설치된 Tomcat 7의 "상수 풀의 잘못된 바이트 태그: 15" 예외

Tomcat 7은 공식적으로 Java 8과 호환됩니다. 그러나 Java 6이 포함된 Tomcat 7에서 Java 8이 포함된 다른 Tomcat 7 서버로 웹 앱을 마이그레이션할 때 사용자는 다음 예외를 경험할 수 있습니다.

org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15
로그인 후 복사

가능한 원인

이 예외는 Java 8이 포함된 Tomcat 7의 BCEL(Byte Code Engineering Library) 문제로 인해 발생합니다. BCEL은 특히 주석 검색이 활성화된 경우(web.xml에서 metadata-complete="true") 새로운 Java 8 바이트 코드를 처리하는 데 어려움을 겪습니다. ).

솔루션

주석 검색 없음:

주석 검색을 활용하지 않는 경우 다음 방법으로 문제를 해결할 수 있습니다. Tomcat 7을 릴리스 7.0.53 이상으로 업데이트합니다. 여기에는 향상된 Java 8 지원을 갖춘 업데이트된 컴파일러가 포함됩니다.

주석 검색:

주석 검색이 활성화되면 두 가지 대안이 있습니다:

  • 문제 라이브러리 제외: /etc/tomcat7/catalina.properties에 다음 줄을 추가합니다:
junit.jar,junit-*.jar,ant-launcher.jar,\
jfxrt.jar,nashorn.jar
로그인 후 복사

이것은 표시된 라이브러리 검색을 건너뛰도록 Tomcat에 지시합니다.

  • 주석 검색 비활성화: 주석 검색을 비활성화하려면 web.xml에서 "metadata-complete="true"를 제거하세요.

추가 참고 사항:

  • 이 특정 문제는 Oracle JDK 8_25가 설치된 Debian 7.6의 Tomcat 7.0.28에서 발생했습니다.
  • "공식 Tomcat 7이 Java 8과 호환된다는 답변은 여전히 ​​유효합니다. 그러나 주석 검색이 활성화되면 BCEL 문제가 발생할 수 있습니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿