InstantiationException: org.jboss.as.weld.webtier.jsf.WeldApplicationFactory when trying to use JSF 1.2 in JBoss EAP 6
Issue
- We are have an issue with deploying two wars with different jsf versions in an ear project. War one is jsf 1.2 and the second war is jsf 2.2. We are using jboss-deployment-structure.xml in the ear project to define the class loading. The stack trace we are getting is:
jboss-deployment-structure.xml
<?xml version='1.0' encoding='UTF-8'?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<ear-subdeployments-isolated>true</ear-subdeployments-isolated>
<deployment>
<dependencies>
<module name="org.apache.commons.beanutils" export="true"/>
<module name="org.apache.commons.collections" export="true"/>
<module name="org.apache.commons.lang" export="true"/>
<module name="org.apache.commons.pool" export="true"/>
<module name="org.apache.xerces" export="true"/>
<module name="org.apache.xalan" export="true"/>
<module name="org.hibernate" slot="3" export="true"/>
<module name="org.springframework.spring" export="true" meta-inf="export"/>
<module name="org.jboss.ws.cxf.jbossws-cxf-client" services="import" export="true"/>
<module name="org.apache.cxf.impl" export="true" meta-inf="export"/>
</dependencies>
<local-last value="true"/>
</deployment>
<sub-deployment name="example2-web-3.0.0-build1-SNAPSHOT.war">
<dependencies>
<module name="javax.faces.api" slot="main" />
<module name="com.sun.jsf-impl" slot="main" />
</dependencies>
</sub-deployment>
<sub-deployment name="example-web-3.0.0-build1-SNAPSHOT.war">
<exclusions>
<module name="javax.faces.api" slot="main" />
<module name="com.sun.jsf-impl" slot="main" />
</exclusions>
<dependencies>
<module name="javax.faces.api" slot="1.2"/>
<module name="com.sun.jsf-impl" slot="1.2"/>
</dependencies>
</sub-deployment>
</jboss-deployment-structure>
Stacktrace
ERROR|ServerService Thread Pool -- 90|org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/example]||JBWEB000287: Exception sending context initialized
event to listener instance of class com.sun.faces.config.ConfigureListener: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! org.jboss.as.weld.webtier.jsf.WeldApplicationFactory
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:215)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:200)
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777)
at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156)
at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60)
at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.InstantiationException: org.jboss.as.weld.webtier.jsf.WeldApplicationFactory
at java.lang.Class.newInstance(Class.java:359)
at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:537)
at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:405)
at javax.faces.FactoryFinder.access$400(FactoryFinder.java:135)
at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:717)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:239)
at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:187)
at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:132)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:205)
... 13 more
Environment
Red Hat JBoss Enterprise Application Platform (EAP) 6.2.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.