[
https://jira.jboss.org/browse/JBAS-8035?page=com.atlassian.jira.plugin.sy...
]
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