plugin logo information informacion description descargar con java java-ee netbeans ant

java - logo - NetBeans 8.2-Weblogic-Ant build



netbeans 8.2 ubuntu (2)

Cuando intento construir mi Enterprise Project en Netbeans con hormiga, obtengo esta excepción:

advertencia: versión de origen compatible ''RELEASE_6'' del procesador de anotaciones ''org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor'' menos que -source ''1.8'' Nota: Creación de metadatos estáticos de fábrica ...

Un procesador de anotación lanzó una excepción no detectada. Consulte el siguiente seguimiento de la pila para más detalles. java.lang.ClassFormatError: atributo Ausente de código en el método que no es nativo o abstracto en el archivo de clase javax / persistence / PersistenceException

Solo tengo algunas clases de entity en mi módulo ejb.


Este error se informa como un error en NetBeans (con un estado resuelto, ya que se considera un "error de usuario"). A continuación se muestra el comentario principal que explica el problema y brinda la solución:

"ClassFormatError: atributo de Código ausente en el método ..." es siempre una indicación de que javaee-api-6.0.jar se utiliza para la ejecución del tiempo de ejecución. El archivo contiene solo firmas de métodos (los cuerpos de métodos están desprotegidos) y solo es adecuado para la compilación. En futuras versiones de javac podría haber un mejor mensaje de error.

El problema aquí es que javaee-api-6.0.jar está en classpath antes de los tarps de EclipseLink y cuando se inicia el procesador de anotaciones EclipseLink, se utilizan las clases de javaee-api-6.0.jar en lugar de las clases de EclipseLink. Lo primero es que javaee-api-6.0.jar debe eliminarse del classpath del proyecto EJB, no debería ser necesario ya que el proyecto EJB tiene un servidor de aplicaciones seleccionado y el proyecto toma las API EE 6 de ese servidor.

Como entiendo el comentario, debe intentar eliminar cualquier referencia a javaee-api-6.0.jar (que contiene solo clases "ficticias") desde el classpath del proyecto, porque la biblioteca EclipseLink debe proporcionar las clases correctas utilizadas por el procesador de anotación .

Además, esta pregunta parece abordar el mismo problema.


cuando usa el código de inserción y la creación automática de bean, agrega la biblioteca de la API de Java EE 6. Eliminé la biblioteca y agregué la API de Java EE 7.