1 Reply Latest reply on Feb 11, 2014 8:26 AM by Branched to a new discussion.

    Support for Servlet 3.1

    Juraj Húska Master

      I am not sure at what point we plan to support Servlet 3.1, but its reference implementation Tomcat 8 is quite stable now (8.0.1 was released).

       

      I have tried to deploy showcase on Tomcat 8, but following error is thrown during deployment:

       

      SEVERE: Critical error during deployment: 
      java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;
        at com.google.common.cache.LocalCache.<clinit>(LocalCache.java:155)
        at com.google.common.cache.LocalCache$LocalLoadingCache.<init>(LocalCache.java:4871)
        at com.google.common.cache.CacheBuilder.build(CacheBuilder.java:806)
        at org.richfaces.resource.ResourceLibraryFactoryImpl.<init>(ResourceLibraryFactoryImpl.java:49)
        at org.richfaces.services.DefaultModule.configure(DefaultModule.java:65)
        at org.richfaces.services.ServicesFactoryImpl.init(ServicesFactoryImpl.java:49)
        at org.richfaces.services.InitializationListener.createFactory(InitializationListener.java:130)
        at org.richfaces.services.InitializationListener.onStart(InitializationListener.java:68)
        at org.richfaces.services.InitializationListener.processEvent(InitializationListener.java:152)
        at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108)
        at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2187)
        at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2163)
        at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:303)
        at org.jboss.weld.environment.servlet.jsf.ForwardingApplication.publishEvent(ForwardingApplication.java:282)
        at com.sun.faces.config.ConfigManager.publishPostConfigEvent(ConfigManager.java:691)
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:253)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4732)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:461)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1554)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
        at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
        at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:791)
        at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1428)
        at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:702)
        at org.apache.catalina.manager.ManagerServlet.doPut(ManagerServlet.java:428)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:301)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:509)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:651)
        at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
      

       

      I tried to change guava from the version 13 to the latest one: 16, but than another guava related error is thrown. Same with guava 15 as it is in WildFly. But it somehow does not relate to guava, as simple-app with guava 13 works fine on Tomcat 8. Metamer is suffering from the same issue.

       

      Is there anything else I can do in this matter ? Can I file an issue to support Servlet 3.1 ?

       

      Thanks

      Juro

        • 1. Re: Support for Servlet 3.1

          It seems it really relates to Guava version. Does the Tomcat

          8 itself bundle Guava library ?

           

          It is possible that simpleapp works just fine because it does not require

          Guava incidentally (none of its codepaths doesn't hit the problem above).

           

          Note that there are other issues with Guava:

          https://issues.jboss.org/browse/RF-13538

           

          Guava proves to be quite unstable API to code against.

          That's caused by really poor backward compatibility code management.

           

           

          On Mon, Feb 10, 2014 at 5:03 PM, Juraj Húska <jhuska@redhat.com> wrote:

           

          I am not sure at what point we plan to support Servlet 3.1, but its

          reference implementation Tomcat 8 is quite stable now (8.0.1 was released).

           

          I have tried to deploy showcase on Tomcat 8, but following error is thrown

          during deployment:

           

          > SEVERE: Critical error during deployment:
          >
          > java.lang.NoSuchMethodError:
          > com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;
          >
          >   at com.google.common.cache.LocalCache.<clinit>(LocalCache.java:155)
          >
          >   at
          > com.google.common.cache.LocalCache$LocalLoadingCache.<init>(LocalCache.java:4871)
          >
          >   at com.google.common.cache.CacheBuilder.build(CacheBuilder.java:806)
          >
          >   at
          > org.richfaces.resource.ResourceLibraryFactoryImpl.<init>(ResourceLibraryFactoryImpl.java:49)
          >
          >   at org.richfaces.services.DefaultModule.configure(DefaultModule.java:65)
          >
          >   at
          > org.richfaces.services.ServicesFactoryImpl.init(ServicesFactoryImpl.java:49)
          >
          >   at
          > org.richfaces.services.InitializationListener.createFactory(InitializationListener.java:130)
          >
          >   at
          > org.richfaces.services.InitializationListener.onStart(InitializationListener.java:68)
          >
          >   at
          > org.richfaces.services.InitializationListener.processEvent(InitializationListener.java:152)
          >
          >   at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108)
          >
          >   at
          > com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2187)
          >
          >   at
          > com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2163)
          >
          >   at
          > com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:303)
          >
          >   at
          > org.jboss.weld.environment.servlet.jsf.ForwardingApplication.publishEvent(ForwardingApplication.java:282)
          >
          >   at
          > com.sun.faces.config.ConfigManager.publishPostConfigEvent(ConfigManager.java:691)
          >
          >   at
          > com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:253)
          >
          >   at
          > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4732)
          >
          >   at
          > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
          >
          >   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          >
          >   at
          > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
          >
          >   at
          > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
          >
          >   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697)
          >
          >   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)
          >
          >   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:461)
          >
          >   at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1554)
          >
          >   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          >
          >   at
          > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
          >
          >   at
          > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          >
          >   at java.lang.reflect.Method.invoke(Method.java:601)
          >
          >   at
          > org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
          >
          >   at
          > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
          >
          >   at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:791)
          >
          >   at
          > org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1428)
          >
          >   at
          > org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:702)
          >
          >   at
          > org.apache.catalina.manager.ManagerServlet.doPut(ManagerServlet.java:428)
          >
          >   at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
          >
          >   at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
          >
          >   at
          > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:301)
          >
          >   at
          > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          >
          >   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
          >
          >   at
          > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
          >
          >   at
          > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          >
          >   at
          > org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
          >
          >   at
          > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
          >
          >   at
          > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          >
          >   at
          > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
          >
          >   at
          > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
          >
          >   at
          > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615)
          >
          >   at
          > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
          >
          >   at
          > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74)
          >
          >   at
          > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
          >
          >   at
          > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
          >
          >   at
          > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:509)
          >
          >   at
          > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015)
          >
          >   at
          > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:651)
          >
          >   at
          > org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
          >
          >   at
          > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575)
          >
          >   at
          > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533)
          >
          >   at
          > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
          >
          >   at
          > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
          >
          >   at java.lang.Thread.run(Thread.java:722)
          > 

           

          I tried to change guava from the version 13 to the latest one: 16, but

          than another guava related error is thrown. Same with guava 15 as it is in

          WildFly. But it somehow does not relate to guava, as simple-app with guava

          13 works fine on Tomcat 8. Metamer is suffering from the same issue.

           

          Is there anything else I can do in this matter ? Can I file an issue to

          support Servlet 3.1 ?

           

          Thanks

          Juro

           

          Posted by forums

          Original post: https://community.jboss.org/message/856976#856976

           

          _______________________________________________

          richfaces-dev mailing list

          richfaces-dev@lists.jboss.org

          https://lists.jboss.org/mailman/listinfo/richfaces-dev