Java Web Services如何实现单向操作?

How to implement one-way operation in Java Web Services?

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

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

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

但它仍然是请求-响应,而不是异步或单向。

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

不过,您还需要考虑协议。在 HTTP 中,当您发送请求时等待响应,如果一段时间后没有响应返回,那么您将收到 time-out 错误。因此,当您谈论 one-way (您可能更应该说异步请求)时,您确实需要准确说明您的意思。您是否想要确认您的消息已收到,即让服务器以 OK 状态代码响应并离开并完成它的任务,但您不等待任务完成?然后你需要产生另一个线程。 Spring 的 AOP 与 @Transactional 的事务处理方式相同。相反,您使用 @Async 和 return a Future<Something> 注释了您的方法。您还需要 @EnableAsync 在您的配置中。例子参考这篇文章Hot To Do @Async

如果您甚至不关心服务器是否收到您的请求,您就不想使用 TCP/HTTP,而是使用 VOIP 中使用的 UDP(phone 通过互联网)并且更快,但这取决于您的客户。