maven java-ee jboss ear wildfly

maven - No se puede implementar Ear en WildFly 8 debido a fallas al procesar su estructura



java-ee jboss (1)

Después de horas de búsqueda creo que encontré cuál es el problema. Es importante entender que los plugins EE 7 para Netbeans parecen implementar EAR y WAR como artefactos explosionados (Esto hace que el desarrollo sea rápido). La razón por la que el EAR empaquetado funcionará y el oído explotado no es, de hecho, exactamente lo que le está diciendo (no puede encontrar los módulos).

Debe mirar el directorio de implementación de su servidor de aplicaciones.

NOTA: ejecutar jar -tf en tu EAR empaquetado te dará información engañosa, porque NO es lo que se implementa cuando se usa un IDE para implementar

La causa principal de este problema está en la forma en que construyes tu proyecto. Sé que en Maven algunos de nosotros nos gusta terminar con la información de la versión haciendo algo como esto:

<build> <!-- This is replicated to your packing mechanisms (May cause problems in Exploded deployments) --> <finalName>${project.artifactId}</finalName> </build>

Tengo el siguiente error en Wildfly al intentar implementar un EAR que actualmente funciona en Glassfish 4:

09:04:08,976 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) JBAS014613: Operation ("full-replace-deployment") failed - address: ([]) - failure description: {"JBAS014671: Failed services" => {"jboss.deployment.unit./"planoa.ear/".STRUCTURE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit./"planoa.ear/".STRUCTURE: JBAS018733: Failed to process phase STRUCTURE of deployment /"planoa.ear/" Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011037: Unable to process modules in application.xml for EAR [/"/home/psoto/Programs/wildfly-8.1.0.Final/standalone/deployments/planoa.ear/"], module file planoa-update-ejb.jar not found"}} 09:04:09,071 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS018565: Replaced deployment "planoa.ear" with deployment "planoa.ear" 09:04:09,072 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 1) JBAS014774: Service status report JBAS014777: Services which failed to start: service jboss.deployment.unit."planoa.ear".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit."planoa.ear".STRUCTURE: JBAS018733: Failed to process phase STRUCTURE of deployment "planoa.ear" service jboss.deployment.unit."planoa.ear".STRUCTURE

Este es el contenido de mi application.xml (generado con el plugin maven ear):

<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6"> <display-name>planoa-ear</display-name> <module> <ejb>planoa-update-ejb.jar</ejb> </module> <module> <ejb>planoa-core-ejb.jar</ejb> </module> <module> <web> <web-uri>planoa-web.war</web-uri> <context-root>/</context-root> </web> </module> <library-directory>lib</library-directory> </application>

Este es el resultado de jar -tf myearfile.ear:

META-INF/ META-INF/MANIFEST.MF lib/ lib/planoa-messages.jar/ lib/planoa-messages.jar/META-INF/ lib/planoa-messages.jar/META-INF/maven/ lib/planoa-messages.jar/META-INF/maven/com.gi.planoa/ lib/planoa-messages.jar/META-INF/maven/com.gi.planoa/planoa-messages/ lib/planoa-pu.jar/ lib/planoa-pu.jar/com/ lib/planoa-pu.jar/com/gi/ lib/planoa-pu.jar/com/gi/planoa/ lib/planoa-pu.jar/com/gi/planoa/pu/ lib/planoa-pu.jar/com/gi/planoa/pu/eclipselink/ lib/planoa-pu.jar/com/gi/planoa/pu/eclipselink/logger/ lib/planoa-pu.jar/META-INF/ lib/planoa-pu.jar/META-INF/maven/ lib/planoa-pu.jar/META-INF/maven/com.gi.planoa/ lib/planoa-pu.jar/META-INF/maven/com.gi.planoa/planoa-pu/ lib/planoa-log.jar/ lib/planoa-log.jar/META-INF/ lib/planoa-log.jar/META-INF/maven/ lib/planoa-log.jar/META-INF/maven/com.gi.planoa/ lib/planoa-log.jar/META-INF/maven/com.gi.planoa/planoa-log/ planoa-web.war META-INF/application.xml META-INF/jboss-app.xml META-INF/glassfish-application.xml META-INF/jboss-deployment-structure.xml planoa-core-ejb.jar planoa-update-ejb.jar lib/commons-codec-1.5.jar lib/gson-2.2.4.jar lib/gi-commons-ejb-jee7-3.0.37.jar lib/gi-commons-logback-3.0.37.jar lib/gi-commons-jsf2-3.0.37.jar lib/poi-3.10-FINAL.jar lib/planoa-core-service.jar lib/commons-lang3-3.1.jar lib/gi-commons-utils-3.0.37.jar lib/gi-commons-jaxws-3.0.37.jar lib/planoa-messages.jar/WebMessageResources.properties lib/planoa-messages.jar/META-INF/MANIFEST.MF lib/planoa-messages.jar/META-INF/maven/com.gi.planoa/planoa-messages/pom.properties lib/planoa-messages.jar/META-INF/maven/com.gi.planoa/planoa-messages/pom.xml lib/planoa-messages.jar/ValidationMessages.properties lib/providers-io-geonames-1.0.03-20141008.234431-86.jar lib/joda-time-2.4.jar lib/planoa-pu.jar/com/gi/planoa/pu/eclipselink/logger/PlanoASqlSessionLog.class lib/planoa-pu.jar/com/gi/planoa/pu/eclipselink/logger/PlanoASqlSessionCustomizer.class lib/planoa-pu.jar/META-INF/MANIFEST.MF lib/planoa-pu.jar/META-INF/persistence.xml lib/planoa-pu.jar/META-INF/maven/com.gi.planoa/planoa-pu/pom.properties lib/planoa-pu.jar/META-INF/maven/com.gi.planoa/planoa-pu/pom.xml lib/slf4j-api-1.7.7.jar lib/logback-core-1.1.2.jar lib/commons-logging-1.1.3.jar lib/primefaces-5.0.6.jar lib/planoa-log.jar/logback_desarrollo.xml lib/planoa-log.jar/META-INF/MANIFEST.MF lib/planoa-log.jar/META-INF/maven/com.gi.planoa/planoa-log/pom.properties lib/planoa-log.jar/META-INF/maven/com.gi.planoa/planoa-log/pom.xml lib/planoa-log.jar/logback.xml lib/gi-commons-beanvalidation-3.0.37.jar lib/commons-lang-2.6.jar lib/gi-commons-validation-3.0.37.jar lib/logback-classic-1.1.2.jar lib/planoa-core-model.jar lib/primefaces-extensions-2.1.0.jar META-INF/maven/ META-INF/maven/com.gi.planoa/ META-INF/maven/com.gi.planoa/planoa-ear/ META-INF/maven/com.gi.planoa/planoa-ear/pom.xml META-INF/maven/com.gi.planoa/planoa-ear/pom.properties

El error dice que no se encontró planoa-update-ejb.jar , pero como puede ver, está dentro del oído.

Además, si selecciono la oreja generada y la despliego a través de la interfaz web, funciona perfectamente. Así que creo que es un problema con el complemento wildfly de netbeans.