質問

.NET 2.0で実装されたサードパーティのWebサービスを使用する必要があります(もちろんIIS上で)。

Javaクライアントを作成する必要があります。 wsdl2javaを使用してSOAPスタブを生成しています。

元のApache Axisプロジェクトはメンテナンスされていないように見えるため、サービスからの応答を解析する際に問題が発生したため、クライアントを最新バージョン(1.5)のAxis2を使用するように変換しました。現在、.NETサービスは私の要求さえ認識しません。

「チャンク」を取得できました。オフ(「スタブ」はwsdl2javaによって生成されたタイプMumbleStubの変数であり、ここではコードの数行を1つの恐ろしい行として示しています):

stub._getServiceClient().getOptions().setProperty( HTTPConstants.CHUNKED, Boolean.FALSE);

..少なくともサービスは、私のリクエストを認識します。 AS リクエストは、悪いものではありますが、" HTTP / 1.1 400 Bad Request "これは、「WSDLへのリンクを提供する「イントロ/概要」ページとは対照的に)です。

Axis(" 1")リクエストには異なるContent-TYpeヘッダー(text / xml vs application / soap-xml)が含まれていることに気づきました。事実問題。

代わりに、他の誰かがこの問題を抱えていましたか?問題は本当にありますか(ここでは表示できません、ブログエンジンの「要素インジェクション」のように見えます)... xml version-" 1.0" ..." XMLメタイントロタグ"そのAxis2がリクエストの先頭に追加されましたか?

WS-Deathstar、確かに。

役に立ちましたか?

解決

異なるコンテンツタイプヘッダーについて言及したように、クライアントはSOAP 1.2リクエストを送信しようとし、サードパーティアプリはSOAP 1.1のみを理解していると思います

AFAIK AXIS2はデフォルトでSOAP 1.2を使用するため、使用済みの石鹸のバージョンを変更してみてください

stub._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top