Well, it took me some time, but I figured out that JBoss AS does not add the JSF stuff to the classpath when starting CODI. The solution for JBoss AS7 to get CODI working when located in EAR/lib finally is:

Add a jboss-deployment-structure.xml file to EAR/META-INF that looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<!-- Make sub deployments isolated by default, so they cannot see each others
        classes without a Class-Path entry -->
<ear-subdeployments-isolated>true</ear-subdeployments-isolated>
<!-- This corresponds to the top level deployment. For a war this is the
        war's module, for an ear -->
<!-- This is the top level ear module, which contains all the classes in
        the EAR's lib folder -->
    <deployment>
<!-- This allows you to define additional dependencies, it is the same
            as using the Dependencies: manifest attribute -->
        <dependencies>
            <module name="org.w3c.css.sac" />
            <module name="net.sourceforge.cssparser" />
            <module name="com.sun.jsf-impl" />
            <module name="javax.api" />
            <module name="javax.faces.api" />
            <module name="javax.xml.bind.api" />
            <module name="javax.xml.jaxp-provider" />
            <module name="com.google.guava" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>

This will make everything that is somehow jsf specific available for the CODI jar. Hope this might help someone else.

Regards,
Christian

Am 06.09.2012 22:29, schrieb Mark Struberg:
Hi christian!

Yes, this is perfectly possible. You just have to move all your JSF deps which 
are needed by CODI to a shared jar  (in an EAR lib).
myfaces-api.jar myfaces-impl.jar, el, etc. All the stuff which is 
(transitively) required on the classpath.

I have this scenario running over here with 12 webapps in an EAR (with 
ClassLoader isolation).


LieGrue,
strub




----- Original Message -----
From: Christian Beikov <christian.bei...@gmail.com>
To: MyFaces Discussion <users@myfaces.apache.org>
Cc:
Sent: Thursday, September 6, 2012 10:06 PM
Subject: MyFaces CODI within EAR

Hello!

I am trying to package the codi jsf 2 bundle 1.0.5 within my ear but I am
getting some exceptions like:

java.lang.NoClassDefFoundError: javax/faces/bean/ViewScoped

I have placed the bundle in EAR/lib since I have 2 Webapps that use CODI.
Is it even possible to use CODI in such a scenario? Could you please provide
some details on how CODI is supposed to be packaged within an EAR?

Regards,
Christian


Reply via email to