繁体   English   中英

JAVA API Servlet异步调用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM