Moja aplikacja internetowa działa poprawnie w JDK 1.7, ale ulega awarii w 1.8 z następującym wyjątkiem (podczas uruchamiania serwera aplikacji z Jetty 8). Używam wersji Spring: 3.2.5.RELEASE.
Wyjątek:
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
Zakładam, że problem występuje z powodu sprężyny i biblioteki „asm.jar”, od której to zależy.
Jak mam to rozwiązać?
Odpowiedzi:
Jak stwierdzili @prunge i @Pablo Lozano, potrzebujesz Spring 4, jeśli chcesz skompilować kod do Java 8 (--target 1.8), ale nadal możesz uruchamiać aplikacje na Javie 8 skompilowanej do Java 7, jeśli uruchomisz na Spring 3.2.X.
Sprawdź http://docs.spring.io/spring/docs/current/spring-framework-reference/html/new-in-4.0.html
źródło
Jeśli napotkasz ten błąd, nawet jeśli kompilujesz z -target 1.7, pamiętaj, że jest to spowodowane błędem w Spring Framework, który powoduje, że czytnik klas ASM ładuje klasy jdk (java. * Lub javax. *), Którymi są oczywiście skompilowane z -target 1.8.
To, w połączeniu ze starą wersją ASM na wiosnę 3.2.8 i poniżej, która nie obsługuje parsowania plików klasy 1.8, również może prowadzić do tego błędu.
Więcej informacji o problemie można znaleźć tutaj: https://jira.spring.io/browse/SPR-11719
Powinno to zostać naprawione w Spring Framework w wersji 3.2.9, która ma się wkrótce ukazać.
Oczywiście uaktualnienie do Spring Framework 4 również rozwiąże problem, ponieważ zawiera już nowszą wersję ASM.
Jeśli jednak z jakiegoś powodu nie możesz jeszcze zaktualizować do wersji 4, dobrze jest wiedzieć, że istnieje alternatywa (wkrótce).
źródło
jeśli używasz java 8 lub nowszej wersji, musisz zaktualizować wersję wiosenną, a wersja wiosenna powinna być 4.xxx
źródło
Miałem ten sam problem i rozwiązałem go. Używam spring 3.x z java 8. Jeśli powyższe rozwiązania nie działają, zmień jars i wyszukaj, czy te słoiki są kompatybilne z używaną wersją java, czy nie. Spring 3.x nie jest kompatybilny z java 8.
źródło
Spring 4 może być używany w java 8, aby rozwiązać ten problem. Właśnie to przetestowałem i działa. Ten problem został rozwiązany od wersji Spring 3.2.9-RELEASE.
źródło