編輯:重新標記爲tomcat
/jboss
,因爲這可能是一個有關嵌入內部的JBoss 6 Tomcat的問題,而不是JBoss的本身異步處理中的JBoss 6(「彗星」)
我有一個非常簡單的servlet,它適用於Glassfish v3。它使用Servlet 3.0異步處理。下面是一個簡化版本(這並沒有做太多):
@WebServlet(asyncSupported=true)
public class SimpleServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
final AsyncContext ac = request.startAsync();
ac.setTimeout(3000);
}
}
在Jboss應用服務器6.0.0 里程碑2,我得到以下異常:
java.lang.IllegalStateException: The servlet or filters that are being used
by this request do not support async operation
at org.apache.catalina.connector.Request.startAsync(Request.java:3096)
at org.apache.catalina.connector.Request.startAsync(Request.java:3090)
at org.apache.catalina.connector.RequestFacade.startAsync(RequestFacade.java:990)
at playcomet.SimpleServlet.doGet(SimpleServlet.java:18)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
...
我必須做什麼特別的在JBoss 6中啓用異步處理?還是我需要一個額外的部署描述符? ...
@skaffman:感謝提示與Tomcat!然而,JBoss 6.0.0 Milestone 2包含一種全新的異步處理方法(基於Servlet 3.0)和AFAIK,這在Tomcat版本中並不是有效的 - 但我不是100%確定的。 – 2010-05-03 15:10:45