java web服务-请求、确认和响应

java web服务-请求、确认和响应,java,web-services,weblogic,jdeveloper,Java,Web Services,Weblogic,Jdeveloper,我必须开发一个JavaWeb服务,它可以获得一个请求并立即发送一个确认(同步),所以到目前为止,它很简单 接下来,web服务必须对请求执行多个检查,然后根据该检查发送响应(也是同步的,因为我没有来自客户端的回调端点) 问题是我可以发送ackowledget,并在另一个线程中启动多个检查,但检查完成后,客户端已经收到了他的响应,我无法发送另一个响应 以下是我现在所做的: @WebService public class Configuration { @Resource WebServi

我必须开发一个JavaWeb服务,它可以获得一个请求并立即发送一个确认(同步),所以到目前为止,它很简单

接下来,web服务必须对请求执行多个检查,然后根据该检查发送响应(也是同步的,因为我没有来自客户端的回调端点)

问题是我可以发送ackowledget,并在另一个线程中启动多个检查,但检查完成后,客户端已经收到了他的响应,我无法发送另一个响应

以下是我现在所做的:

@WebService
public class Configuration {

    @Resource WebServiceContext context;

    @WebMethod
    public ReqAckType configure(@XmlElement(required = true) @WebParam(name = "reqType")
                                       ReqType req) {

        ReqAckType ack = new ReqAckType();
        ack.setReceptionTime(Calendar.getInstance());

        ChecksScheduler cs = ChecksScheduler.getInstance();

        Checks checks = cs.schedule(req);

        ack.setInternalId(checks.getId());

        return ack;
    }

}
如果有人能帮我弄清楚如何发送两条单独的消息(确认和回复),知道我必须单独发送它们,而且支票花费了太多时间(正因为如此,我必须发送和确认),我将不胜感激


我使用的是Oracle Fusion中间件(Weblogic、JDeveloper等)

ack实际上做了什么,而客户端在发送请求时没有收到任何错误,这一事实让客户端不知道?如果它进行简单的检查,您可以将整个过程分为两种方法。ack只在请求到达时返回(因此,是的,除了请求已到达正确的端点以及接收时间信息之外,什么都没有)。我不能分为两个方法,因为客户端只会调用这个方法和一次。在这种情况下,我个人会放弃ack,因为如果出现网络问题或类似问题,网络层无论如何都会产生错误…是的,但必须这样做,没有其他方法吗?我将尝试说服另一方的团队,这是正确的方法。据我所知,(SOAP)Web服务意味着请求->响应。也许可以通过保持HTTP连接打开来创建一些东西,但我怀疑这在技术上仍然是一个正常的Web服务。ack实际上做了什么,而客户端在发送请求时没有收到任何错误,这是客户端不知道的?如果它进行简单的检查,您可以将整个过程分为两种方法。ack只在请求到达时返回(因此,是的,除了请求已到达正确的端点以及接收时间信息之外,什么都没有)。我不能分为两个方法,因为客户端只会调用这个方法和一次。在这种情况下,我个人会放弃ack,因为如果出现网络问题或类似问题,网络层无论如何都会产生错误…是的,但必须这样做,没有其他方法吗?我将尝试说服另一方的团队,这是正确的方法。据我所知,(SOAP)Web服务意味着请求->响应。也许可以通过保持HTTP连接打开来创建一些东西,但我怀疑这在技术上是否仍然是一个正常的Web服务。