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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.