Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-16527

Faces 4 fails if CDI isn't enabled for the deployment

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • 27.0.0.Alpha2, 27.0.0.Final
    • None
    • JSF
    • None

      Run ForbiddenUrlTestCase against WF Preview or my WFLY-16432 branch and it fails with this in the log:

      &amp#27;[0m&amp#27;[31m20:21:52,487 ERROR [stderr] (ServerService Thread Pool -- 24) java.lang.IllegalStateException: CDI is not available
      &amp#27;[0m&amp#27;[31m20:21:52,488 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.util.Util.getCdiBeanManager(Util.java:1493)
      &amp#27;[0m&amp#27;[31m20:21:52,488 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.application.applicationimpl.ExpressionLanguage.addELResolver(ExpressionLanguage.java:106)
      &amp#27;[0m&amp#27;[31m20:21:52,488 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.application.ApplicationImpl.addELResolver(ApplicationImpl.java:208)
      &amp#27;[0m&amp#27;[31m20:21:52,488 ERROR [stderr] (ServerService Thread Pool -- 24) 	at org.jboss.as.jsf-injection//org.jboss.as.jsf.injection.weld.WeldApplication.<init>(WeldApplication.java:60)
      &amp#27;[0m&amp#27;[31m20:21:52,488 ERROR [stderr] (ServerService Thread Pool -- 24) 	at org.jboss.as.jsf-injection//org.jboss.as.jsf.injection.weld.WeldApplicationFactory.getApplication(WeldApplicationFactory.java:52)
      &amp#27;[0m&amp#27;[31m20:21:52,488 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.application.InjectionApplicationFactory.getApplication(InjectionApplicationFactory.java:61)
      &amp#27;[0m&amp#27;[31m20:21:52,488 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.config.InitFacesContext.getApplication(InitFacesContext.java:109)
      &amp#27;[0m&amp#27;[31m20:21:52,488 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.lifecycle.ClientWindowFactoryImpl.<init>(ClientWindowFactoryImpl.java:39)
      &amp#27;[0m&amp#27;[31m20:21:52,488 ERROR [stderr] (ServerService Thread Pool -- 24) 	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      &amp#27;[0m&amp#27;[31m20:21:52,488 ERROR [stderr] (ServerService Thread Pool -- 24) 	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      &amp#27;[0m&amp#27;[31m20:21:52,489 ERROR [stderr] (ServerService Thread Pool -- 24) 	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      &amp#27;[0m&amp#27;[31m20:21:52,489 ERROR [stderr] (ServerService Thread Pool -- 24) 	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
      &amp#27;[0m&amp#27;[31m20:21:52,489 ERROR [stderr] (ServerService Thread Pool -- 24) 	at java.base/java.lang.Class.newInstance(Class.java:584)
      &amp#27;[0m&amp#27;[31m20:21:52,489 ERROR [stderr] (ServerService Thread Pool -- 24) 	at jakarta.faces.api//jakarta.faces.FactoryFinderInstance.getImplGivenPreviousImpl(FactoryFinderInstance.java:431)
      &amp#27;[0m&amp#27;[31m20:21:52,489 ERROR [stderr] (ServerService Thread Pool -- 24) 	at jakarta.faces.api//jakarta.faces.FactoryFinderInstance.getImplementationInstance(FactoryFinderInstance.java:323)
      &amp#27;[0m&amp#27;[31m20:21:52,489 ERROR [stderr] (ServerService Thread Pool -- 24) 	at jakarta.faces.api//jakarta.faces.FactoryFinderInstance.getFactory(FactoryFinderInstance.java:183)
      &amp#27;[0m&amp#27;[31m20:21:52,489 ERROR [stderr] (ServerService Thread Pool -- 24) 	at jakarta.faces.api//jakarta.faces.FactoryFinder.getFactory(FactoryFinder.java:263)
      &amp#27;[0m&amp#27;[31m20:21:52,489 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.config.processor.FactoryConfigProcessor.lambda$verifyFactoriesExist$0(FactoryConfigProcessor.java:286)
      &amp#27;[0m&amp#27;[31m20:21:52,489 ERROR [stderr] (ServerService Thread Pool -- 24) 	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
      &amp#27;[0m&amp#27;[31m20:21:52,489 ERROR [stderr] (ServerService Thread Pool -- 24) 	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
      &amp#27;[0m&amp#27;[31m20:21:52,490 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:280)
      &amp#27;[0m&amp#27;[31m20:21:52,490 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:195)
      &amp#27;[0m&amp#27;[31m20:21:52,490 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.config.ConfigManager.lambda$initialize$0(ConfigManager.java:265)
      &amp#27;[0m&amp#27;[31m20:21:52,490 ERROR [stderr] (ServerService Thread Pool -- 24) 	at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:720)
      &amp#27;[0m&amp#27;[31m20:21:52,490 ERROR [stderr] (ServerService Thread Pool -- 24) 	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
      &amp#27;[0m&amp#27;[31m20:21:52,490 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:263)
      &amp#27;[0m&amp#27;[31m20:21:52,490 ERROR [stderr] (ServerService Thread Pool -- 24) 	at com.sun.jsf-impl@4.0.0.SP01//com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:179)
      &amp#27;[0m&amp#27;[31m20:21:52,490 ERROR [stderr] (ServerService Thread Pool -- 24) 	at io.undertow.servlet@2.3.0.Alpha1//io.undertow.servlet.core.ApplicationListeners.contextInitialized(ApplicationListeners.java:187)
      

      Adding an empty beans.xml to the test deployment fixes this, but users shouldn't have to add a beans.xml to get Faces to work.

      One possible solution would be to add a method to WeldCapability to allow capability users (i.e. the Faces subsystem) to tell the weld subsystem to mark a deployment as a Weld deployment. That's only if Mojarra really does require CDI and its doing so isn't a bug.

              jaslee@redhat.com Jason Lee
              bstansbe@redhat.com Brian Stansberry
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: