GWT requestbuilder与异步servlet 3.0

GWT requestbuilder与异步servlet 3.0,gwt,servlets,asynchronous,Gwt,Servlets,Asynchronous,我有一个使用requestbuilder与servlet()通信的示例项目StockWatcher。我想让servlet异步化。我在doGet方法中添加了以下行: final AsyncContext ac = request.startAsync(); ac.setTimeout(1 * 60 * 1000); ac.addListener(new AsyncListener() { @Override public void onError(AsyncEvent arg0)

我有一个使用requestbuilder与servlet()通信的示例项目StockWatcher。我想让servlet异步化。我在doGet方法中添加了以下行:

final AsyncContext ac = request.startAsync();  
ac.setTimeout(1 * 60 * 1000);  
ac.addListener(new AsyncListener() {  

@Override  
public void onError(AsyncEvent arg0) throws IOException {  
            System.out.println("onError");       
}  

public void onComplete(AsyncEvent event) throws IOException {  
            System.out.println("onComplete");   
            queue.remove(ac);  
}  

public void onTimeout(AsyncEvent event) throws IOException {  
            System.out.println("onTimeout");   
            queue.remove(ac);  
}  

@Override  
public void onStartAsync(AsyncEvent arg0) throws IOException {  
            System.out.println("onStartAsync");   

}  
});  
queue.add(ac); 
添加了异步注释:
@WebServlet(asyncSupported=true)
并用以下方法更改了doGet方法的其余部分:

PrintWriter out = ac.getResponse().getWriter();
out.println("Something");
out.flush();

现在什么都没有了。我错了什么?必须在客户端更改某些内容吗?Glassfish 3没有显示任何错误。

您没有做错任何事情。GWT使用Servlet2.5,如果您尝试异步操作,它就会阻塞。我现在也有同样的问题,尽管我使用了Vaadin(它使用GWT)。我在该主题上找到了一个链接:

有一个页面声称问题已经解决:


我还没有尝试过这个方法。

为什么要排队。添加(ac);两次?对,我错了。但这并不能解决我的问题