在java中发送SOAP响应后运行代码

在java中发送SOAP响应后运行代码,java,soap,web,service,Java,Soap,Web,Service,我的web服务从用户处获取SOAP请求。在完成服务中的所有工作之后,我是否可以发送回用户响应,然后运行一些代码 实际上,我想记录服务的输出。如果我运行记录输出的代码,并且记录服务失败,那么由于该错误,我无法发送回任何响应 有没有一种方法可以让我发送服务的用户响应,然后运行日志记录服务 我尝试了SOAP处理程序的close方法,但它在我的服务返回响应之前运行。基本上,您需要找到一个回调(),在http响应从服务器接收回来后,您可以挂接到该回调() 类似的问题请参见此处:已回答。您应该使用回调函数来

我的web服务从用户处获取SOAP请求。在完成服务中的所有工作之后,我是否可以发送回用户响应,然后运行一些代码

实际上,我想记录服务的输出。如果我运行记录输出的代码,并且记录服务失败,那么由于该错误,我无法发送回任何响应

有没有一种方法可以让我发送服务的用户响应,然后运行日志记录服务


我尝试了SOAP处理程序的close方法,但它在我的服务返回响应之前运行。

基本上,您需要找到一个回调(),在http响应从服务器接收回来后,您可以挂接到该回调()


类似的问题请参见此处:已回答。

您应该使用回调函数来确保响应已完成。

使用try-catch来控制代码中的错误。对于您的情况,您可以控制日志服务是否失败,并将响应发送给用户

如果您想使用更复杂的东西,可以使用异步方法,使用队列或事件

在JEE中,您可以对需要记录的方法使用“@Asynchronous”注释。它将异步运行,因此不会阻止webservice的返回


如果您需要该方法的结果,您将需要管理存储未来的引用,例如在一个单例中,然后在第二个web服务调用中获得esult。

如何创建web服务:是Spring还是JEE或其他什么?您能展示一些代码吗。有多种方法可以从AOP、拦截器、动态代理等实现这一点。。。很多框架都提供了解决方案,因为这远远不是一个不寻常的需求。我可以使用SOAP处理程序的handleResponse()吗?Web服务是使用@WebService的J2EE Web服务。对不起,我在这方面有点幼稚。代码非常大。主要思想是这样的。获取SOAP请求,做一些事情,记录我的web服务的任何错误。返回响应(服务结束后自动返回)。我只想在用户得到我的SOAP响应(服务结束)后进行日志记录。我在ORACLE拦截器上读到,“当处理程序链中第一个处理程序的handleResponse()方法执行时,WebLogic server将最终SOAP消息响应返回给调用Web服务的客户端应用程序。”