Hi all. Currently, we're migrating our projects from Ivy 6.3 to Ivy 7.0.3. One of the problems we're facing is PrimePush doesn't work anymore in Chrome but still works in Internet Explorer and FireFox. Previously this feature works on all browsers
We followed this instruction to implement PrimeFacePush for Ivy 6.3: https://answers.axonivy.com/questions/10/can-i-use-primepush-in-xpert-ivy
Error in Chrome when the page is loaded:alt text

Log file: 11:11:51.568 WARN [org.atmosphere.cpr.DefaultBroadcaster] [http-nio-8081-exec-7] [requestId=209574] Duplicate resource 562f3a7e-8900-4c5c-89f7-4689843ccbf2. Could be caused by a dead connection not detected by your server. Replacing the old one with the fresh one 11:11:51.568 WARN [org.apache.catalina.connector.Request] [http-nio-8081-exec-7] [requestId=209574] Unable to start async because the following classes in the processing chain do not support async [org.primefaces.push.PushServlet] java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations. at org.apache.catalina.connector.Request.startAsync(Request.java:1665) at org.apache.catalina.connector.RequestFacade.startAsync(RequestFacade.java:1038) at org.atmosphere.cpr.AtmosphereRequestImpl.startAsync(AtmosphereRequestImpl.java:631) at org.atmosphere.container.Servlet30CometSupport.suspend(Servlet30CometSupport.java:95) at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:70) at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2287) at org.atmosphere.cpr.AtmosphereServlet.doPost(AtmosphereServlet.java:191) at org.atmosphere.cpr.AtmosphereServlet.doGet(AtmosphereServlet.java:177) at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at ch.ivyteam.ivy.webserver.internal.startup.IvyEngineUnavailableFilter.doFilter(IvyEngineUnavailableFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at ch.ivyteam.ivy.webserver.internal.PerformanceLogValve.invoke(PerformanceLogValve.java:55) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) 11:11:51.568 ERROR [org.atmosphere.cpr.AtmosphereFramework] [http-nio-8081-exec-7] [requestId=209574] AtmosphereFramework exception java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations. at org.apache.catalina.connector.Request.startAsync(Request.java:1665) at org.apache.catalina.connector.RequestFacade.startAsync(RequestFacade.java:1038) at org.atmosphere.cpr.AtmosphereRequestImpl.startAsync(AtmosphereRequestImpl.java:631) at org.atmosphere.container.Servlet30CometSupport.suspend(Servlet30CometSupport.java:95) at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:70) at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2287) at org.atmosphere.cpr.AtmosphereServlet.doPost(AtmosphereServlet.java:191) at org.atmosphere.cpr.AtmosphereServlet.doGet(AtmosphereServlet.java:177) at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at ch.ivyteam.ivy.webserver.internal.startup.IvyEngineUnavailableFilter.doFilter(IvyEngineUnavailableFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at ch.ivyteam.ivy.webserver.internal.PerformanceLogValve.invoke(PerformanceLogValve.java:55) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)
Hope I can get your help!

asked 29.03 at 23:52

hieulam's gravatar image

hieulam
415
accept rate: 0%

edited 30.03 at 00:19

Seems to be a problem on server side? Does it really work properly with Firefox and IE? The main cause seems to be "java.lang.IllegalStateException: A filter or servlet of the current chain does not support asynchronous operations."

(03.04 at 02:43) Alex Suter ♦♦ Alex%20Suter's gravatar image

Another issue is the primefaces push only run long pulling, server log say Websocket protocol not supported, I wonder why Tomcat 8.5 does not support Websocket?

(02.06 at 20:44) xuanvinh xuanvinh's gravatar image

It's correct as @alex-suter said, we have to declare the asynchronous to our filter and servlet inside web.xml of designer/engine. Besides, we have to add the library atmosphere atmosphere-runtime-2.4.21.jar to the WEB-INF/lib folder.

https://pastebin.com/Ajs69XEe -> Sorry I dont know how to markup xml file here

We need to add async-supported tag as true to the PrimePush servlet configuration and also to the filter that ivy already stated in the web.xml file.

link

answered 12.04 at 22:22

ToanLC's gravatar image

ToanLC
16151120
accept rate: 16%

edited 12.04 at 22:22

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×44
×15
×5

Asked: 29.03 at 23:52

Seen: 189 times

Last updated: 02.06 at 20:44