JBoss.orgCommunity Documentation

Chapter 12. Servlet Implementations

12.1. DefaultBlockingServlet
12.2. TomcatCometServlet
12.3. JettyContinuationsServlet
12.4. JBossCometServlet
12.5. GrizzlyCometServlet
12.6. WeblogicAsyncServlet

Errai has several different implementations for HTTP traffic to and from the bus. We provide a universally-compatible blocking implementation that provides fully synchronous communication to/from the server-side bus. Where this introduces scalability problems, we have implemented many webserver-specific implementations that take advantage of the various proprietary APIs to provide true asynchrony.

These inlcuded implementations are packaged at: org.jboss.errai.bus.server.servlet

This is a universal, completely servlet spec (2.0) compliant, Servlet implementation. It provides purely synchronous request handling and should work in virtually any servlet container, unless there are restrictions on putting threads into sleep states.

The Tomcat AIO implementation of our servlet allows Errai to take advantage of Tomcat's event-based AIO APIs to improve scalability and reduce thread usage. The use of this implementation is dependant on the Tomcat container being configured to support AIO using either it's NIO or APR connectors. This servlet will NOT work with the regular HTTP and AJP connectors.

The Jetty implementation leverages Jetty's continuations support, which allows for threadless pausing of port connections. This servlet implementation should work without any special configuration of Jetty.

The JBoss Comet support utilizes the JBoss Web AIO APIs (AS 5.0 and AS 6.0) to improve scalability and reduce thread usage. The HTTP, NIO, and AJP connectors are not supported. Use of this implementation requires use of the APR (Apache Portable Runtime).

Support for the comet API in the Grizzy HTTP server (used in Glassfish).

Support for the Weblogic asynchronous APIs.