Wenn ich in eclipse ein Maven JEE Web Projekt habe
(maven archetype: jboss-javaee6-webapp version: 7.0.2.CR) , dass eine
dependency auf eine eclipse Maven EJB-JAR Projekt hat (ejb-javaee6
version:1.5), bekomme ich folgende Fehlermeldungen im JBoss AS 7:
01:07:52,533 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3)
MSC00001: Failed to start service
jboss.deployment.unit."is-pm-test.war".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit."is-pm-test.war".STRUCTURE:
Failed to process phase STRUCTURE of deployment "is-pm-test.war"
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
[:1.6.0_20]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source) [:1.6.0_20]
at java.lang.Thread.run(Unknown
Source) [:1.6.0_20]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: org.jboss.as.server.deployment.DeploymentUnitProcessingException: failed to process
"/D:/java-server/jboss/jboss-as-7.0.2.Final/standalone/deployments/is-pm-test.war/WEB-INF/lib/is-temporaldata-0.0.1-SNAPSHOT.jar"
at
org.jboss.as.web.deployment.WarStructureDeploymentProcessor.deploy(WarStructureDeploymentProcessor.java:118)
at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115)
... 5 more
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: failed to process "/D:/java-server/jboss/jboss-as-7.0.2.Final/standalone/deployments/is-pm-test.war/WEB-INF/lib/is-tmp-0.0.1-SNAPSHOT.jar"
at
org.jboss.as.web.deployment.WarStructureDeploymentProcessor.createWebInfLibResources(WarStructureDeploymentProcessor.java:173)
at org.jboss.as.web.deployment.WarStructureDeploymentProcessor.createResourceRoots(WarStructureDeploymentProcessor.java:151)
at
org.jboss.as.web.deployment.WarStructureDeploymentProcessor.deploy(WarStructureDeploymentProcessor.java:112)
... 6 more
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method) [:1.6.0_20]
at
java.util.zip.ZipFile.<init>(Unknown Source) [:1.6.0_20]
at
java.util.jar.JarFile.<init>(Unknown Source) [:1.6.0_20]
at
java.util.jar.JarFile.<init>(Unknown Source) [:1.6.0_20]
at
org.jboss.vfs.spi.JavaZipFileSystem.<init>(JavaZipFileSystem.java:95)
at
org.jboss.vfs.spi.JavaZipFileSystem.<init>(JavaZipFileSystem.java:81)
at org.jboss.vfs.VFS.mountZip(VFS.java:408)
at org.jboss.vfs.VFS.mountZip(VFS.java:434)
at
org.jboss.as.web.deployment.WarStructureDeploymentProcessor.createWebInfLibResources(WarStructureDeploymentProcessor.java:168)
... 8 more
Ursache:
Das eclipse Maven Plugin deployed zum einem das WAR Projekt
exploded (was sehr gut ist!). Weiterhin deployed es aber auch alle abhängigen
JAR Dateien unter WEB-INF\lib (mvn dependencies) exploded, die auf geöffneten
eclipse Projekten stammen.
Der App Server kann damit verständlicherweise nicht umgehen
(class files unter WEB-INF\lib, wo gibt’s denn sowas?).
Abhilfe:
Dieses Verhalten kann verhindert werden, in dem man in den
abhängigen Projekten folgende Einstellung vornimmt:
Project
Properties (des EJB-JAR eclipse Projektes) -> Project Facets -> Utility
Module aktivieren.
Anschließend warden die entsprechenden JAR Dependencies
nicht mehr exploded abgelegt J
Keine Kommentare:
Kommentar veröffentlichen