InstantiationException: org.jboss.as.weld.webtier.jsf.WeldApplicationFactory when trying to use JSF 1.2 in JBoss EAP 6

Solution Unverified - Updated -

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.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content