2

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 が無効になっているクライアントの場合だけです。

4

1 に答える 1

1

Tomcat からの HTTP エラー 400 は、多くの場合、Web アプリケーションが適切に起動/初期化されていないことを意味します。appserver の起動/デプロイ ログに失敗の証拠が表示されるはずです。

于 2010-01-26T15:46:08.143 に答える