6

Java WS との通信に問題があります。認証にクライアント証明書を使用した「wsHttpBinding」バインディングを使用しています。メッセージ エンコーディングは「テキスト」に設定され、.net フレームワークは 4.0 です。サーバー側はJavaであり、私はそれを制御できません。接続は Fiddler を介してプロキシされています (これは、「System.Net」をトレースするよりもはるかにユーザーフレンドリーな、ネットワーク上の要求を確認する方法です)。

私が得る例外は次のとおりです。

コンテンツ タイプ application/xop+xml; 応答メッセージの type="application/soap+xml" がバインディングのコンテンツ タイプ (application/soap+xml; charset=utf-8) と一致しません。

メッセージのエンコーディングを「Mtom」に変更すると、例外が変更されます。

コンテンツ タイプ application/xop+xml; 応答メッセージの type="application/soap+xml" がバインディングのコンテンツ タイプ (multipart/related; type="application/xop+xml") と一致しません。

サーバーはリクエストに対して「テキスト」と「Mtom」の両方のメッセージ エンコーディングを受け入れ、レスポンスは常に同じです。これは、サーバーから取得している生の応答です。

HTTP/1.1 200 OK
X-Backside-Transport: OK OK
Connection: Keep-Alive
X-Powered-By: Servlet/3.0
SOAPAction: ""
Content-Type: application/xop+xml; type="application/soap+xml"
Content-Language: en-US
Date: Thu, 25 Jul 2013 13:05:09 GMT
Content-Length: 628

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope  ...   </env:Envelope>

私が読んでいるすべてのドキュメントから、返されている応答は、通常の SOAP メッセージと MTOM メッセージの間のどこかにあります。私がこれを言っているのは、私が見たすべての例で、MTOM 要求と応答が通信のエンベロープとして MIME を使用していると言っているからです。通常の SOAP メッセージは XOP パッケージにエンベロープされ、この XOP メッセージは MIME でエンベロープされます。W3C 勧告でさえ、XOP パッケージに MIME を使用しています: W3C: XML-binary Optimized Packaging。このリンクからの抜粋:

Content-Type: Multipart/Related;boundary=...

ツール「soapUI」(Java で記述され、「www.soapui.org」から入手可能) を使用して Web サービスを呼び出してみると、サービス呼び出しは正常に実行され、応答は問題なく解析されます。

参考までに、これはMSDN WCF フォーラムからのクロスポストですが、まだ応答はありません。

どんなアイデアでも大歓迎です、事前に感謝します、

アレックス

4

2 に答える 2

3

私も CXF を使用しており、C# クライアントを持っています。バインディング設定を変更してみてtextMessageEncodingくださいmtomMessageEncoding。このようなもの:

<binding name="yourSoapBinding">
    <mtomMessageEncoding messageVersion="Soap12"/>
    <httpTransport />
</binding>
于 2015-08-04T05:15:19.243 に答える