2013-07-26 14 views
5

Java WSとの対話に問題があります。私は "wsHttpBinding"認証のためのクライアント証明書とのバインディングを使用しています、メッセージのエンコーディングは "テキスト"に設定されています。ネットフレームワークは4.0です。サーバー側はJavaで、私はそれを制御できません。接続はFiddlerを介してプロキシされています(これは、「System.Net」をトレースするよりもはるかにユーザーフレンドリーなものです)。私が手Java WSと対話するWCFクライアント例外:コンテンツタイプapplication/xop + xml;応答メッセージのtype = "application/soap + xml"

例外は以下の通りです:

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

Iが "MTOM" へのメッセージのエンコードを変更した場合は、例外の変更:

コンテンツタイプアプリケーション/ 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=... 

私は(「www.soapui.org」から入手できるJavaで書かれた、)ツール「あるsoapUI」を使用してWebサービスを呼び出ししようとすると、任意のせずにサービスコールが正常に実行され、応答が解析されます問題。

FYIのクロスポストMSDN WCF forumからですが、まだ回答がありません。

任意のアイデアは

はそれが役に立てば幸い...

アレックス

+0

私は全く同じ問題に直面しています。カスタムバインディングを作成して、messageVersion = "Soap12"を設定しても私にとってはうまくいきませんでした。私が見ることができる1つの違いは、私のWebサービスコールはhttpsですが、この投稿はhttpのようです。 –

+0

解決策を見つけましたか?私は同じ問題を抱えています。しかし、バインドされた設定は最初の答えで示唆されているように、web.configでは有効ではありません。 –

+0

HTTPとHTTPSの違いはありません。これは単なるトランスポートの詳細です。問題は、メッセージのフォーマットです。私が持っていた問題は、政府機関がいくつかのJavaサーバー(IBM WebSphereスタックを使用)を使用していて、そのスタックが不適合メッセージを生成していたことでした。私の場合は2つのオプションがあります:1)SoapUIをメッセージをダウンロードしてC#2で解析する外部アプリケーションとして使用する)ネットワークを介して来る生のXMLを編集し、標準に準拠してメッセージXMLを変更する - >これ方法はすべてC#で行われました。 – alemarko

答えて

0

はなくwsHTTP 1のmessageEncoding="Mtom"basicHTTPBindingへの結合構成でメッセージのエンコードを設定してみてください、事前に感謝を歓迎です!

2

私はCXFも使用しており、C#クライアントを持っています。バインド設定を変更してみてください。textMessageEncodingmtomMessageEncodingに置き換えてください。次のようなものがあります。

関連する問題