1

如何在 Web Services 中实现单向操作(使用 Java 或 Spring 注解)?

我试图添加一种方式,如下所示

   @WebService
   public interface DanduServices {
     @Oneway
     public void saveDanduInformation(@WebParam(name = "serv") ServDTO Serv, @WebParam(name = "dandu") DanduDTO danduDto);

但它仍然是请求-响应而不是异步或一种方式。

任何人都可以建议在服务端点中进行单向操作并让其他操作按照请求响应运行吗?

4

1 回答 1

1

不过,您还需要考虑协议。在 HTTP 中,当您发送请求时,您会等待响应,如果在一段时间后没有响应返回,那么您将收到超时错误。因此,当您谈论单向(您可能应该说异步请求)时,您确实需要准确说明您的意思。您是否想要确认您的消息已收到,即让服务器以 OK 状态代码回复并开始并完成它的任务,但您不等待任务完成?然后你需要产生另一个线程。Spring 对此有 AOP,就像它对@Transactional. 相反,您使用注释您的方法@Async并返回一个Future<Something>. 您还需要@EnableAsync在您的配置中。参考这篇文章的例子热门任务@Async

如果您甚至不关心服务器是否收到您的请求,您不想使用 TCP/HTTP,而是使用 UDP,例如在 VOIP(互联网电话)中使用并且速度更快,但这取决于您的客户端.

于 2018-02-23T00:11:22.240 回答