我在 tomcat 上使用 XFire 1.2.6 作为 Web 服务实现。服务是使用 XFireProxyFactory 和 @EnableMTOM 注释创建的。客户端也是 XFire 并且正在使用 MTOM。
在 Tomcat 5.5.20 中一切正常,但在 Tomcat 6.0.20中由于某种原因失败了。尝试从客户端访问 Web 服务时,客户端出现以下错误原因:
Caused by: org.codehaus.xfire.XFireRuntimeException: Server returned error code = 400 for URI : http://hostname_stripped/webservices-8-1/services/LoginService. Check server logs for details
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:130)
at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
... 22 more
问题是服务器日志中没有任何内容。
当我在客户端禁用 MTOB 时,它会一直工作,直到我请求一个实际需要 mtom 的方法。
Tomcat 6 相对于 tomcat 5.5 的哪些变化可能会导致 mtom 问题?我知道我没有提供太多信息,但我没有更多信息,而且我想不出去哪里找。即使是狂野的问题也值得赞赏。
编辑:Webapp 日志显示 Web 服务部署正常。当客户端未启用 mtom 时,我可以调用 Web 服务。只是在 mtom eanbled 客户端的情况下,我收到此错误并且服务器上没有日志。