Мое веб-приложение отлично работает на JDK 1.7, но вылетает на 1.8 со следующим исключением (во время запуска сервера приложений с Jetty 8). Я использую версию Spring: 3.2.5.RELEASE.
Исключение:
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
Я предполагаю, что проблема возникает из-за Spring и библиотеки asm.jar, от которых она зависит.
Как мне решить эту проблему?
Ответы:
Как заявили @parage и @Pablo Lozano, вам понадобится Spring 4, если вы хотите скомпилировать код для Java 8 (--target 1.8), но вы все равно можете запускать приложения на Java 8, скомпилированные для Java 7, если вы запускаете Spring 3.2.X.
Ознакомьтесь с http://docs.spring.io/spring/docs/current/spring-framework-reference/html/new-in-4.0.html.
источник
Если вы столкнулись с этой ошибкой, даже если вы компилируете с -target 1.7, обратите внимание, что это из-за ошибки в Spring Framework, которая заставляет ASM classreader загружать классы jdk (java. * Или javax. *), Которые, конечно же, скомпилирован с -target 1.8.
Это в сочетании со старой версией ASM Spring 3.2.8 и ниже, которая не поддерживает синтаксический анализ файлов классов 1.8, также может привести к этой ошибке.
Более подробную информацию о проблеме можно найти здесь: https://jira.spring.io/browse/SPR-11719.
Это должно быть исправлено в Spring Framework версии 3.2.9, которая должна быть выпущена в ближайшее время.
Конечно, обновление до Spring Framework 4 также решит проблему, поскольку он уже содержит более новую версию ASM.
Однако, если по какой-то причине вы еще не можете выполнить обновление до версии 4, хорошо знать, что есть альтернатива (скоро).
источник
если вы используете java 8 или следующую версию, вам необходимо обновить весеннюю версию, а весенняя версия должна быть 4.xxx
источник
У меня была такая же проблема, и я ее решил. Я использую spring 3.x с java 8. Если приведенные выше решения не работают, измените банки и найдите, совместимы ли эти банки с используемой версией java или нет. spring 3.x несовместима с java 8.
источник
Spring 4 можно использовать для java 8, чтобы решить эту проблему. Я только что протестировал, и он работает. Эта проблема исправлена, начиная с версии Spring 3.2.9-RELEASE.
источник