Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-8035

Weld Deployer not working with new JSF Deployer

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Blocker
    • 6.0.0.M4
    • 6.0.0.M4
    • Weld/CDI
    • None
    • Hide

      Deploy a Weld app.

      Show
      Deploy a Weld app.

    Description

      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.

      Attachments

        Activity

          People

            marius.bogoevici Marius Bogoevici (Inactive)
            ssilvert@redhat.com Stan Silvert
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: