!asyncSupported exception on websockets

Hello,

I encounter strange exception:

org.atmosphere.cpr.AtmosphereFramework - AtmosphereFramework exception
java.lang.IllegalStateException: !asyncSupported
	at org.eclipse.jetty.server.Request.startAsync(Request.java:2047)
	at javax.servlet.ServletRequestWrapper.startAsync(ServletRequestWrapper.java:464)
	at org.atmosphere.cpr.AtmosphereRequest.startAsync(AtmosphereRequest.java:723)
	at org.atmosphere.container.Servlet30CometSupport.suspend(Servlet30CometSupport.java:93)
	at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:68)
	at org.atmosphere.container.Jetty9AsyncSupportWithWebSocket.service(Jetty9AsyncSupportWithWebSocket.java:170)
	at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2075)
	at com.vaadin.server.communication.PushRequestHandler.handleRequest(PushRequestHandler.java:248)
	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1436)
	at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:385)
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:301)
	at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:192)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)

What can be the cause? Some misconfiguration of Apache web server?
On local environment everything is working just fine

Hi,

  1. Open the modules/web/web/WEB-INF/web.xml file
  2. Find a <servlet> with name: <servlet-name>app_servlet</servlet-name> and make sure that the servlet has <async-supported>true</async-supported> property, for instance:
<servlet>
	<servlet-name>app_servlet</servlet-name>
	<servlet-class>com.haulmont.cuba.web.sys.CubaApplicationServlet</servlet-class>
	...
	<async-supported>true</async-supported>
</servlet>
  1. Find a <filter> with name: <filter-name>cuba_filter</filter-name> and make sure that the filter has <async-supported>true</async-supported> property, for instance:
<filter>
    <filter-name>cuba_filter</filter-name>
    <filter-class>com.haulmont.cuba.web.sys.CubaHttpFilter</filter-class>
    <async-supported>true</async-supported>
</filter>

Regards,
Gleb

1 Like

This seems to have solved my problem. Thank you