Maison >Java >javaDidacticiel >Pourquoi est-ce que j'obtiens l'exception « balise d'octet non valide dans le pool constant : 15 » dans Tomcat 7 avec Java 8 ?
"Balise d'octet invalide dans le pool constant : 15" Exception dans Tomcat 7 avec Java 8
Tomcat 7 est officiellement compatible avec Java 8. Cependant, lors de la migration d'une application Web de Tomcat 7 avec Java 6 vers un autre serveur Tomcat 7 avec Java 8, les utilisateurs peuvent rencontrer l'exception suivante :
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15
Causes possibles
Cette exception se produit en raison de problèmes BCEL (Byte Code Engineering Library) dans Tomcat 7 avec Java 8. BCEL rencontre des difficultés à traiter les nouveaux codes d'octet Java 8, en particulier lorsque l'analyse des annotations est activée (metadata-complete="true" dans web.xml ).
Solutions
Aucune analyse des annotations :
Si l'analyse des annotations n'est pas utilisée, le problème peut être résolu en mise à jour de Tomcat 7 vers la version 7.0.53 ou ultérieure, qui inclut un compilateur mis à jour avec une prise en charge améliorée de Java 8.
Analyse des annotations :
Lorsque l'analyse des annotations est activée, il y a Il existe deux alternatives :
junit.jar,junit-*.jar,ant-launcher.jar,\ jfxrt.jar,nashorn.jar
Ceci demandera à Tomcat d'ignorer l'analyse des bibliothèques indiquées.
Notes supplémentaires :
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!