Web サービスの実装として、Tomcat で XFire 1.2.6 を使用しています。サービスは 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 5.5 と比較した Tomcat 6 のどのような変更が mtom の問題を引き起こす可能性があるのか 誰にもわかりますか? 多くの情報を提供していないことはわかっていますが、それ以上の情報はなく、どこを見ればいいのかアイデアが尽きています。野生の質問でさえ感謝されます。
編集: Webapp ログは、Web サービスが正常にデプロイされたことを示しています。クライアントで mtom が有効になっていない場合でも、Web サービスを呼び出すことができます。このエラーが発生し、サーバーにログが記録されないのは、mtom が無効になっているクライアントの場合だけです。