No problem Mark ;)
I am using 7.1.0 since 7.1.1 comes with a buggy mojarra version. The
class loading things are well documented in the wiki and I also think
that this behavior is intended, but anyway, give it a try and report it
to them.
I would be more happy, if there was a 7.1.2 release with version
updates, but that will probably not come until weld 2 is out <.<
Regards,
Christian
Am 07.09.2012 14:24, schrieb Mark Struberg:
Sorry Christian, saw your mail only now.
You solution makes perfect sense. Didn't know JBoss AS tries to start CDI with
not having all the ClassPath in place. I sense some more problems will hit you
in this case. What JBossAS version do you use exactly? I would report this
issue to the JBoss team. Guess they are happy about such a feedback!
LieGrue,
strub
----- Original Message -----
From: Christian Beikov <[email protected]>
To: [email protected]
Cc:
Sent: Friday, September 7, 2012 7:36 AM
Subject: Re: MyFaces CODI within EAR
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 <[email protected]>
To: MyFaces Discussion <[email protected]>
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