首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于Java中的另一个异步web服务的响应来响应web服务

基于Java中的另一个异步web服务的响应来响应web服务
EN

Stack Overflow用户
提问于 2014-01-22 21:46:33
回答 1查看 1.1K关注 0票数 0

我有一个需求,作为where的一部分,我将作业的详细信息输入数据库,数据库由Windows C#异步处理,并对Java服务进行HTTP调用,通知作业的状态。

设想情况:

  • 客户端对Java进行同步的Restful调用。
  • Java将作业详细信息输入数据库(类似于进行异步调用),并等待来自Windows的响应(这是对Java服务的新HTTP请求)。
  • 根据收到的响应,Java需要返回到等待同步调用的客户端。

我们如何在Java服务中实现这一点?

编辑:我使用泽西框架实现了restful服务,并在Jetty上运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-22 22:19:51

根据您正在使用的泽西和Jetty版本,您可能可以使用Servlet3.0中添加的异步处理请求支持。(基于维基百科网页

泽西文件JAX-RS API文档提供了如何异步(即在另一个线程中)完成未完成请求的示例:

代码语言:javascript
运行
复制
@Path("/resource")
public class AsyncResource {
    @GET
    public void asyncGet(@Suspended final AsyncResponse asyncResponse) {

        new Thread(new Runnable() {
            @Override
            public void run() {
                String result = veryExpensiveOperation();
                asyncResponse.resume(result);
            }

            private String veryExpensiveOperation() {
                // ... very expensive operation
            }
        }).start();
    }
}

在您的示例中,您将以这样的方式存储AsyncResponse对象:一旦收到来自另一个web服务的响应,就可以通过调用resume来完成请求,并使用您想要发送到客户端的任何响应。

另请参阅:

异步JAX-RS的目的是什么?

JAX-RS和长轮询

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21294675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档