Maison  >  Article  >  Java  >  Comment corriger « Exception de balise d'octet non valide » dans Tomcat 7 lors de la mise à niveau vers Java 8 ?

Comment corriger « Exception de balise d'octet non valide » dans Tomcat 7 lors de la mise à niveau vers Java 8 ?

DDD
DDDoriginal
2024-10-28 15:26:02825parcourir

 How to Fix

Exception de balise d'octet non valide dans Tomcat 7 avec Java 8

Lors du portage d'une application Web de Tomcat 7 et Java 7 vers un autre serveur exécutant Tomcat 7 et Java 8, une erreur peut survenir au démarrage :

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

Cette exception provient de BCEL, la bibliothèque d'ingénierie de bytecode Java utilisée par Tomcat. En particulier, l'analyse des annotations (avec metadata-complete="true" dans web.xml) peut déclencher des problèmes en raison de l'incapacité de BCEL à traiter certains codes Java 8 octets.

Solutions :

1. Désactiver l'analyse des annotations :

Si l'analyse des annotations n'est pas essentielle, elle peut être désactivée en définissant metadata-complete="false" dans web.xml.

2. Tomcat 7.0.53 ou version ultérieure :

Tomcat 7.0.53 et versions ultérieures incluent un compilateur mis à jour avec une prise en charge améliorée de Java 8. La mise à niveau vers ces versions devrait résoudre l'exception.

3. Ignorer les fichiers JAR Java 8 pour l'analyse des annotations (avancé) :

Si l'analyse des annotations est requise et que l'application Web n'est pas basée sur Java 8, ajoutez la ligne suivante à /etc/tomcat7/catalina.properties :

junit.jar,junit-*.jar,ant-launcher.jar,\jfxrt.jar,nashorn.jar

Cette ligne demande à Tomcat d'ignorer les JAR Java 8 spécifiques lors de l'analyse des annotations.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn