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

我试图添加如下所示的一种方法

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


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

有人可以建议在服务端点中单向执行一项操作,并让其他操作按照请求-响应的方式运行吗?

最佳答案

您还需要考虑协议。在HTTP中,当您发送请求时,您等待响应,如果经过一定时间后没有响应返回,则您将收到超时错误。因此,当您谈论单向时(您可能宁愿说一个异步请求),您确实需要确切说明您的意思。您是否要确认已收到您的消息,即服务器是否以OK状态码响应并退出并完成其任务,但您不等待任务完成?然后,您将需要生成另一个线程。 Spring具有与@Transactional事务相同的AOP。取而代之的是,您用@Async注释了方法并返回了Future<Something>。您还需要在配置中使用@EnableAsync。请参阅本文以获取示例Hot To Do @Async

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

关于java - 如何在Java Web Services中实现单向操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48926224/

10-11 01:18