[英]JAVA API Servlet Asynchronous Call
我想在Java API Servlet中进行异步调用。 我在课堂上使用了这个
@WebServlet(name="asyncServlet2",value = {"/async"},asyncSupported = true,urlPatterns="/async")
我的意图是因为API调用将是一个较长的过程,它可以显示该过程是否立即启动,而不是显示启动时间。
我不知道Java Servlet 3.0的哪些功能可以让我立即显示消息。 谢谢你的帮助!
这取决于预期的响应形式。 如果您完全控制响应的外观,那么这应该是可行的。 例如:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
resp.setContentType("text/plain");
AsyncContext context = req.startAsync();
// Possibly in another thread:
// Initiate call to external service.
resp.getWriter().write("Call initiated OK.\n\n");
resp.getWriter().flush();
// Definitely in another thread:
// Call to external service returns.
resp.getWriter().write("Result: " + result);
resp.getWriter().flush();
context.complete();
}
请注意,即使最后调用外部服务可能失败,响应也将返回200 OK。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.