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

JSF deployment failure due to UnsupportedOperationException when javax.faces.FACELETS_VIEW_MAPPINGS is defined

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 20.0.1.Final
    • Fix Version/s: None
    • Component/s: JSF, Web (Undertow)
    • Labels:
      None
    • Steps to Reproduce:
      Hide

      1. Configure the following javax.faces.FACELETS_VIEW_MAPPINGS setting in web.xml of your JSF application (For example, add the following web.xml to tasks-jsf in JBoss EAP QuickStarts):

      <?xml version="1.0" encoding="UTF-8"?>
      <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"                  
               version="4.0">
          <context-param>
              <param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name>
              <param-value>*.jsp</param-value>
          </context-param>
      </web-app>
      

      2. Deploy the application and start Wildfly 20

      3. You will see the deployment failure due to "UnsupportedOperationException: UT010042: This method cannot be called from a servlet context listener that has been added programmatically"

      Show
      1. Configure the following javax.faces.FACELETS_VIEW_MAPPINGS setting in web.xml of your JSF application (For example, add the following web.xml to tasks-jsf in JBoss EAP QuickStarts): <?xml version= "1.0" encoding= "UTF-8" ?> <web-app xmlns= "http: //xmlns.jcp.org/xml/ns/javaee" xmlns:xsi= "http: //www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http: //xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version= "4.0" > <context-param> <param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name> <param-value>*.jsp</param-value> </context-param> </web-app> 2. Deploy the application and start Wildfly 20 3. You will see the deployment failure due to "UnsupportedOperationException: UT010042: This method cannot be called from a servlet context listener that has been added programmatically"
    • Workaround:
      Workaround Exists
    • Workaround Description:
      Hide

      Add "*.xhmtl;" to the javax.faces.FACELETS_VIEW_MAPPINGS setting. For example:

          <context-param>
              <param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name>
              <param-value>*.xhmtl;*.jsp</param-value>
          </context-param>
      
      Show
      Add "*.xhmtl;" to the javax.faces.FACELETS_VIEW_MAPPINGS setting. For example: <context-param> <param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name> <param-value>*.xhmtl;*.jsp</param-value> </context-param>

      Description

      When the following setting is defined in web.xml for JSF application:

          <context-param>
              <param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name>
              <param-value>*.jsp</param-value>
          </context-param>
      

      JSF deployment fails with "UnsupportedOperationException: UT010042: This method cannot be called from a servlet context listener that has been added programmatically"

      SEVERE [javax.enterprise.resource.webcontainer.jsf.config] (ServerService Thread Pool -- 84) Critical error during deployment: : java.lang.UnsupportedOperationException: UT010042: This method cannot be called from a servlet context listener that has been added programatically
      	at io.undertow.servlet.spec.ServletContextImpl.ensureNotProgramaticListener(ServletContextImpl.java:976)
      	at io.undertow.servlet.spec.ServletContextImpl.getServletRegistrations(ServletContextImpl.java:584)
      	at com.sun.faces.util.Util.getExistingFacesServletRegistration(Util.java:160)
      	at com.sun.faces.util.Util.getFacesServletMappings(Util.java:150)
      	at com.sun.faces.util.Util.isResourceExactMappedToFacesServlet(Util.java:1158)
      	at com.sun.faces.util.Util.isViewIdExactMappedToFacesServlet(Util.java:1139)
      	at com.sun.faces.application.view.FaceletViewHandlingStrategy.handlesViewId(FaceletViewHandlingStrategy.java:946)
      	at com.sun.faces.application.view.ViewHandlingStrategyManager.getStrategy(ViewHandlingStrategyManager.java:76)
      	at com.sun.faces.application.view.ViewDeclarationLanguageFactoryImpl.getViewDeclarationLanguage(ViewDeclarationLanguageFactoryImpl.java:47)
      	at com.sun.faces.application.view.MultiViewHandler.getViewDeclarationLanguage(MultiViewHandler.java:446)
      	at javax.faces.application.ViewHandlerWrapper.getViewDeclarationLanguage(ViewHandlerWrapper.java:346)
      	at javax.faces.application.ViewHandlerWrapper.getViewDeclarationLanguage(ViewHandlerWrapper.java:346)
      	at com.sun.faces.application.ApplicationAssociate$PostConstructApplicationListener.processEvent(ApplicationAssociate.java:324)
      	at javax.faces.event.SystemEvent.processListener(SystemEvent.java:123)
      	at com.sun.faces.application.applicationimpl.Events.processListeners(Events.java:253)
      	at com.sun.faces.application.applicationimpl.Events.invokeListenersFor(Events.java:231)
      	at com.sun.faces.application.applicationimpl.Events.publishEvent(Events.java:112)
      	at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:127)
      	at javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:788)
      	at com.sun.faces.config.ConfigManager.publishPostConfigEvent(ConfigManager.java:553)
      	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:264)
      	at io.undertow.servlet.core.ApplicationListeners.contextInitialized(ApplicationListeners.java:187)
      	at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:217)
      	at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:186)
      	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
      	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
      	at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
      	at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:252)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:96)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:78)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
      	at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
      	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
      	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
      	at java.lang.Thread.run(Thread.java:748)
      	at org.jboss.threads.JBossThread.run(JBossThread.java:491)
      
      ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 84) MSC000001: Failed to start service jboss.deployment.unit."tasks-jsf.war".undertow-deployment: org.jboss.msc.service.StartException in service jboss.deployment.unit."tasks-jsf.war".undertow-deployment: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.UnsupportedOperationException: UT010042: This method cannot be called from a servlet context listener that has been added programatically
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:81)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
      	at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
      	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
      	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
      	at java.lang.Thread.run(Thread.java:748)
      	at org.jboss.threads.JBossThread.run(JBossThread.java:491)
      Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.UnsupportedOperationException: UT010042: This method cannot be called from a servlet context listener that has been added programatically
      	at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:254)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:96)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:78)
      	... 8 more
      Caused by: java.lang.RuntimeException: java.lang.UnsupportedOperationException: UT010042: This method cannot be called from a servlet context listener that has been added programatically
      	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:283)
      	at io.undertow.servlet.core.ApplicationListeners.contextInitialized(ApplicationListeners.java:187)
      	at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:217)
      	at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:186)
      	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
      	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
      	at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
      	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
      	at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:252)
      	... 10 more
      Caused by: java.lang.UnsupportedOperationException: UT010042: This method cannot be called from a servlet context listener that has been added programatically
      	at io.undertow.servlet.spec.ServletContextImpl.ensureNotProgramaticListener(ServletContextImpl.java:976)
      	at io.undertow.servlet.spec.ServletContextImpl.getServletRegistrations(ServletContextImpl.java:584)
      	at com.sun.faces.util.Util.getExistingFacesServletRegistration(Util.java:160)
      	at com.sun.faces.util.Util.getFacesServletMappings(Util.java:150)
      	at com.sun.faces.util.Util.isResourceExactMappedToFacesServlet(Util.java:1158)
      	at com.sun.faces.util.Util.isViewIdExactMappedToFacesServlet(Util.java:1139)
      	at com.sun.faces.application.view.FaceletViewHandlingStrategy.handlesViewId(FaceletViewHandlingStrategy.java:946)
      	at com.sun.faces.application.view.ViewHandlingStrategyManager.getStrategy(ViewHandlingStrategyManager.java:76)
      	at com.sun.faces.application.view.ViewDeclarationLanguageFactoryImpl.getViewDeclarationLanguage(ViewDeclarationLanguageFactoryImpl.java:47)
      	at com.sun.faces.application.view.MultiViewHandler.getViewDeclarationLanguage(MultiViewHandler.java:446)
      	at javax.faces.application.ViewHandlerWrapper.getViewDeclarationLanguage(ViewHandlerWrapper.java:346)
      	at javax.faces.application.ViewHandlerWrapper.getViewDeclarationLanguage(ViewHandlerWrapper.java:346)
      	at com.sun.faces.application.ApplicationAssociate$PostConstructApplicationListener.processEvent(ApplicationAssociate.java:324)
      	at javax.faces.event.SystemEvent.processListener(SystemEvent.java:123)
      	at com.sun.faces.application.applicationimpl.Events.processListeners(Events.java:253)
      	at com.sun.faces.application.applicationimpl.Events.invokeListenersFor(Events.java:231)
      	at com.sun.faces.application.applicationimpl.Events.publishEvent(Events.java:112)
      	at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:127)
      	at javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:788)
      	at com.sun.faces.config.ConfigManager.publishPostConfigEvent(ConfigManager.java:553)
      	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:264)
      	... 22 more
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  rchakrab Ranabir Chakraborty
                  Reporter:
                  rchakrab Ranabir Chakraborty
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated: