gpt4 book ai didi

java - IllegalStateException : Not supported on AsyncContext. startAsync(请求,资源)

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:39 24 4
gpt4 key购买 nike

我创建了一个 servlet 3.0 来探索异步请求处理:

@WebServlet(name="MyTest", urlPatterns={"/MyTest"}, asyncSupported=true)
public class MyTest extends HttpServlet {

@Override
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {

AsyncContext tmp = req.startAsync(req, res);
...

}

}

但是当调用 .startAsync(...) 时,我得到一个 IllegalStateException。我知道 Javadoc 提到了该异常,但我确实明确启用了异步(参见 WebServlet 注释)。我使用的是随 NetBeans 一起提供的 Tomcat 7.0.11.0。

我可以确认 req.isAsyncSupported() 正在返回 false。我究竟做错了什么?我还需要做什么才能启用异步处理?

编辑:

我尝试实现以下 example并得到了同样的问题。

最佳答案

我检查了 Tomcat 的代码,发现 asyncSupported 变量必须明确设置为 true。这就是您得到 req.isAsyncSupported() == false 的原因。

您可以尝试通过以下方法之一将 HttpServletRequest 对象中的 async 属性设置为 true。

req.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true);

((org.apache.catalina.connector.Request)req).setAsyncSupported(true);

希望对您有所帮助。

关于java - IllegalStateException : Not supported on AsyncContext. startAsync(请求,资源),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7749350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com