Seam Faces causes exception in JBoss AS 7 (ear deployment)
bcowdery.bcowdery.gmail.com Oct 20, 2011 7:29 PMI've been trying to put together a proof-of-concept applicaiton using .ear packaging with CDI and Seam. My persistence unit /w seam-persistence and my web-application work fine until I add Seam Faces into the mix. Once I add the seam-faces jars I get this nasty exception on startup:
17:12:08,003 WARN [org.jboss.weld] (MSC service thread 1-3) Could not load portable extension org.jboss.seam.faces.context.FacesAnnotationsAdapterExtension: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [:1.6.0_25] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [:1.6.0_25] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [:1.6.0_25] at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [:1.6.0_25] at org.jboss.as.weld.deployment.processors.WeldPortableExtensionProcessor.loadExtension(WeldPortableExtensionProcessor.java:117) [jboss-as-weld-7.0.2.Final.jar:7.0.2.Final] at org.jboss.as.weld.deployment.processors.WeldPortableExtensionProcessor.loadAttachments(WeldPortableExtensionProcessor.java:100) [jboss-as-weld-7.0.2.Final.jar:7.0.2.Final] at org.jboss.as.weld.deployment.processors.WeldPortableExtensionProcessor.deploy(WeldPortableExtensionProcessor.java:86) [jboss-as-weld-7.0.2.Final.jar:7.0.2.Final] at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115) 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(ThreadPoolExecutor.java:886) [:1.6.0_25] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_25] at java.lang.Thread.run(Thread.java:662) [:1.6.0_25] Caused by: java.lang.NoClassDefFoundError: javax/faces/bean/RequestScoped at org.jboss.seam.faces.context.FacesAnnotationsAdapterExtension.<init>(FacesAnnotationsAdapterExtension.java:56) [seam-faces-impl-3.0.2.Final.jar:] ... 13 more Caused by: java.lang.ClassNotFoundException: javax.faces.bean.RequestScoped from [Module "deployment.billing-ng.ear:main" from Service Module Loader] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) ... 14 more
My ear application isn't all that complex, it basically boils down to
application.ear | |- webapp.war |- core-ejb.jar | |- lib/ |-- seam-faces.3.0.2.Final.jar |-- seam-solder.3.0.0.Final.jar |-- seam-persistence-api.3.0.0.Final.jar |-- seam-persistence-impl.3.0.0.Final.jar
Is there something missing?
My war contains both a beans.xml and a faces-config.xml in WEB-INF/ so as far as I can tell AS7 should be detecting and adding in the JSF dependencies. Even if I include the sun jsf-iml.jar on my own it doesn't fix the issue.