java.lang.ClassFormatError : Absent Code attribute in method that is not native or abstract in class file …
Problem
Ein sehr seltsames und seltenes Problem ist in der JPA- oder Hibernate-Entwicklung aufgetreten.
Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/GenerationType at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknow
Lösung
Dies wird immer durch diejavaee.jar verursacht, die sich auf Java.net befinden. Viele Entwickler greifen gerne zujavaee.jar mit der folgenden Maven-Koordinate:
Java.Net http://download.java.net/maven/2/ javax javaee-api 6.0
Dasjavaee.jar von java.net enthält jedoch keine Methodenkörper, sondern nur den Namen der APIs. Welches nicht geeignet ist, um zusammen mit Ihrer Anwendung ausgeführt oder bereitgestellt zu werden.
Es wird empfohlen, immer die ursprüngliche Vollversion derjavaee.jar-Datei aushttp://java.sun.com/javaee/ abzurufen. Laden Sie einfach das J2EE SDK herunter und installieren Sie es. Diejavaee.jar befinden sich im Ordner "\ J2EE_SDK_FOLDER \ lib". Wenn Sie es in Ihr lokales Maven-Repository oder in den Klassenpfad von poject aufnehmen, wird die obige Fehlermeldung beseitigt.