Mon application Web fonctionne correctement sur JDK 1.7 mais plante sur 1.8 avec l'exception suivante (lors du démarrage du serveur d'applications avec Jetty 8). J'utilise la version Spring: 3.2.5.RELEASE.
Exception:
org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet
Je suppose que ce problème se produit à cause du ressort et de la bibliothèque "asm.jar" dont il dépend.
Comment résoudre ça?
Réponses:
Comme l'ont déclaré @prunge et @Pablo Lozano, vous avez besoin de Spring 4 si vous voulez compiler du code vers Java 8 (--target 1.8), mais vous pouvez toujours exécuter des applications sur Java 8 compilées vers Java 7 si vous exécutez sur Spring 3.2.X.
Consultez http://docs.spring.io/spring/docs/current/spring-framework-reference/html/new-in-4.0.html
la source
Si vous rencontrez cette erreur même si vous compilez avec -target 1.7, veuillez noter que cela est dû à un bogue dans Spring Framework qui oblige le classreader ASM à charger des classes jdk (java. * Ou javax. *), Qui sont, bien sûr, compilé avec -target 1.8.
Ceci, combiné à l'ancienne version ASM du printemps 3.2.8 et inférieur, qui ne prend pas en charge l'analyse des fichiers de classe 1.8, peut également conduire à cette erreur.
Plus d'informations sur le problème sont disponibles ici: https://jira.spring.io/browse/SPR-11719
Cela devrait être corrigé dans Spring Framework version 3.2.9, qui devrait être publié prochainement.
Bien sûr, la mise à niveau vers Spring Framework 4 résoudra également le problème, car il contient déjà une version plus récente d'ASM.
Cependant, si pour une raison quelconque vous ne pouvez pas encore mettre à niveau vers la version 4, il est bon de savoir qu'il existe une alternative (bientôt).
la source
si vous utilisez java 8 ou la version suivante, vous devez mettre à niveau la version de printemps et la version de printemps doit être 4.xxx
la source
J'ai eu le même problème et je l'ai résolu. J'utilise spring 3.x avec java 8. Si les solutions ci-dessus ne fonctionnent pas, changez les jars et recherchez si ces jars sont compatibles avec la version java que vous utilisez ou non. spring 3.x n'est pas compatible avec java 8.
la source
Spring 4 peut être utilisé pour java 8 pour résoudre ce problème. Je viens de le tester et ça marche. Ce problème est résolu depuis la version Spring 3.2.9-RELEASE.
la source