[jboss-jira] [JBoss JIRA] Commented: (JBAS-8035) Weld Deployer not working with new JSF Deployer

Stan Silvert (JIRA) jira-events at lists.jboss.org
Tue May 25 12:51:55 EDT 2010


    [ https://jira.jboss.org/browse/JBAS-8035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12532371#action_12532371 ] 

Stan Silvert commented on JBAS-8035:
------------------------------------

Perhaps we need to have a wider discussion about this.  Certainly it is a tradeoff.  I don't see why anyone should expect a web tier API to be available outside the web tier.  Plus it solves some old problems and gives users lots of flexibility with new choices over how they deploy and configure their applications.

Some of these problems address past complaints from the Seam/Weld teams.  For instance, had the JSF Deployer been in place you would have been able to develop against JSF2+JBossAS immediately (without hacking).  You can also, for instance, benchmark the same WAR against both Mojarra and MyFaces.  Switching implementations is just a matter of changing one context-param in web.xml.

In short, my argument is that this is well worth it.  I want JBoss AS to be the best platform for JSF.  The JSF Deployer allows you to do things that no other container can touch.

> Weld Deployer not working with new JSF Deployer
> -----------------------------------------------
>
>                 Key: JBAS-8035
>                 URL: https://jira.jboss.org/browse/JBAS-8035
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Weld/CDI
>    Affects Versions: 6.0.0.M4
>            Reporter: Stan Silvert
>            Assignee: Marius Bogoevici
>            Priority: Blocker
>
> I think this will require Weld Deployer changes, so assigning to Ales for now.
> I've integrated the JSF Deployer into AS but now the Weld tests are failing.  If you deploy a Weld app you will see:
> 18:58:51,956 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/weld-numberguess]] Exception sending context initialized event to listener
> instance of class org.jboss.web.jsf.integration.config.JBossJSFConfigureListener
> : java.lang.NoClassDefFoundError: javax/faces/application/ApplicationFactory
> The JSF deployer is much more selective about adding JSF to the classpath.  It looks like JSF is probably trying to load org.jboss.weld.integration.webtier.jsf.WeldApplicationFactory that is defined in weld.deployer/lib-int/faces/META-INF/faces-config.xml.  I think what happens is that this WeldApplicationFactory is loaded from weld.deployer/weld-jboss-int-webteir.jar.  Then it references a JSF core class and it can't find it because the classloader for that doesn't see JSF.
> The tricky part is that you can't just add JSF to the classloader for that jar.  Each WAR can have a different JSF Implementation if it wants.  So this sort of thing must be done for each individual deployment.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list