This blog has moved to
http://blog.matthias-reining.com

Die bestehenden Artikel bleiben vorerst alle bei blogspot. Neue Artikel veröffentliche ich allerdings nur noch auf http://blog.matthias-reining.com

Dienstag, 27. Dezember 2011

javax.el.ELException: /dummy.xhtml: The class 'de.Dummy$Proxy$_$$_WeldClientProxy' does not have the property 'dummy'... Primeface namespaces

Wenn die Fehlermeldung

javax.el.ELException: /dummy.xhtml: The class 'de.Dummy$Proxy$_$$_WeldClientProxy' does not have the property 'dummy’

auftaucht, kann dies ggf. an Primefaces liegen (falls ihr es überhaupt eingebunden habt…)

Beim Wechsel von Primefaces 2 auf Primefaces 3  ist dies bei mir aufgetreten. Genauer gesagt bei dieser Version:

<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>3.0.RC1</version>

Leider war die Fehlermeldung bzw. der Stacktrace nicht sonderlich aufschlussreich.

Die Primefaces-Namespaces haben sich geändert, was den Fehler verursacht:

Alt: xmlns:p="http://primefaces.prime.com.tr/ui"

Neu (>=3.0RC1): xmlns:p="http://primefaces.org/ui"

Freitag, 2. Dezember 2011

eclipse - JEE Web Projekt mit exploded JAR-File unter WEB-INF\lib ?!?


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