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.