2

jax-ws Web サービスで問題に直面しており、次の例外が発生することがあります。

com.sun.xml.ws.streaming.XMLStreamReaderException: unexpected XML tag. expected: {http://www.company.com/system}getFooResponse but found: {http://www.company.com/system}getFoo
    at com.sun.xml.ws.streaming.XMLStreamReaderUtil.verifyTag(XMLStreamReaderUtil.java:214)
    at com.sun.xml.ws.streaming.XMLStreamReaderUtil.verifyTag(XMLStreamReaderUtil.java:222)
    at com.sun.xml.ws.client.sei.ResponseBuilder$DocLit.readResponse(ResponseBuilder.java:531)
    at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:127)
    at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
    at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:136)
    at $Proxy226980.getFoo(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor315.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler.invoke(ClientInstanceInvocationHandler.java:84)
    at $Proxy185.getFoo(Unknown Source)

例外は、実稼働システムで散発的に (そしてそれほど頻繁ではありません) 発生し (常に、通常は多くの呼び出しが行われるバッチ ジョブで発生します)、ローカルで再現することはできません.. 例外が発生すると、バッチジョブは自然に失敗します。成功させるには、バッチ ジョブを再起動する必要があります。Web サービスは私のプロジェクトの直接の責任ではありませんが、必要に応じて変更を加える可能性があります。

誰もこれを見たことがありますか?レスポンスが返ってきたように見えますが、「Response」の部分が途切れています。これが Web サービスの実装の問題なのか、クライアント プロキシの問題なのかわかりません。

どのバージョンが使用されているかは 100% わかりませんが、次のことはわかっています。

  • Web サービスは JAX-WS で生成され、Oracle の WebLogic サーバーで実行されます。
  • クライアント プロキシは、Oracle の JAX-WS 2.1.5 によって生成されます。
  • クライアント プロキシが Oracle WebLogic コンテナで実行されている

何か案は?

注:現在、生のリクエスト/レスポンスをログに記録していません。誰かがこれを以前に見たことがあり、正しい方向に私を向けることができる場合に備えて、ここに質問を投稿しています。私が言ったように、サーバーが間違った応答を生成しているのか、クライアントがそれを間違って解釈しているのか、またはその間の何かが xml を混乱させているのかはわかりません。

4

1 に答える 1

1

スタックトレースは、クライアントが内部にあることを示しているreadResponse()ため、サーバーが誤った形式でメッセージを送り返していると思います。確実にスニファで確認する必要があります。

于 2012-09-19T19:24:19.847 に答える