【发布时间】:2015-05-21 11:59:16
【问题描述】:
我的网络服务从用户那里得到一个 SOAP 请求。在服务中完成所有工作后,我可以发回用户响应然后运行一些代码吗?
实际上我想记录我的服务的输出。如果我运行记录输出的代码并且如果该日志服务失败,则由于该错误,我无法发回任何响应。
有没有一种方法可以发送用户对我的服务的响应,然后再运行日志服务?
我尝试了 SOAP 处理程序的 close 方法,但它在我的服务返回响应之前运行。
【问题讨论】:
-
如何制作 Web 服务:是 Spring 还是 JEE 或其他?
-
你能显示一些代码吗? AOP、拦截器、动态代理有多种方法可以做到这一点……很多框架都为此提供了解决方案,因为它远非罕见的需求。
-
我可以使用 SOAP Handler 的 handleResponse() 吗?
-
Web 服务是使用@WebService 的J2EE Web 服务。对不起,我在这方面有点天真。
-
代码很大。主要思想是这样的。获取 SOAP 请求,做某事,记录我的 Web 服务的任何错误。返回响应(服务结束后自动返回)。我只想在用户收到我的 SOAP 响应(服务结束)后进行日志记录。我在 ORACLE 拦截器上读到“当处理程序链中第一个处理程序的 handleResponse() 方法执行时,WebLogic 服务器将最终的 SOAP 消息响应返回给调用 Web 服务的客户端应用程序。”