记录格式错误的Axis2请求

时间:2013-12-03 03:56:50

标签: java web-services logging soap axis2

我在托管Web服务的高度修改的Tomcat6环境中使用Axis2-1.6.2,并且需要记录每个传入的Axis2 Web服务请求。

这适用于生产环境,我希望将所有请求(SOAP消息)记录到日志文件中。

对于有效请求(符合WSDL的有效请求结构),这很好用,因为我可以在Axis2解析后记录请求体。问题在于格式错误的请求,Axis2拒绝了这些请求,但没有通过我的代码。

到目前为止,我已经尝试过很多记录这些错误的请求,但是所提出的(简单)解决方案都没有奏效。我基本上只想设置一个logback appender(SLF4J)或者在Java进程中添加一些-Dparameter来激励Axis2将每个传入的消息记录到一个文件中,并且无法相信显然没有简单的方法可以做到这一点。

在我看来,唯一的解决方案是编写一个自定义处理程序,它执行日志记录。然而,对于既定技术和明显的用例来说,这似乎是太多的努力和定制。我确实有像axis2 Log Response with RequestJava Example - Loghandler.java这样的指南。

是否有更简单(更原生)的方式?

1 个答案:

答案 0 :(得分:1)

  

对于有效请求(符合WSDL的有效请求结构),   这工作正常,因为我可以记录请求体后   由Axis2解析。问题在于格式错误的请求   被Axis2拒绝了,并没有通过我的代码。

这是因为,在将请求分派给服务之后,它将失败,因为它没有遵循服务定义。

AFAIK,唯一的解决方案是,在调度阶段之前保留自定义处理程序,以捕获和记录请求。无论在传递axis2图层后记录机制是什么工作。但在你的情况下,它会在那之前失败。所以,试着保留一个简单的处理程序来记录消息..