1

HTTP マルチパート応答を生成する WSO2 ESB プロキシを作成しようとしています。基本的には、XML と添付のバイナリ ファイル (画像など) の 2 つの部分があります。シーケンスは次のようになります。

  • サービスは HTTP GET リクエストとして公開されます
  • 最初にバイナリ ファイルを返すエンドポイントを呼び出します
  • バイナリ ファイルを記述する XML を作成します。
  • 2 つの要素を混ぜ合わせて、マルチパート レスポンス (XML + バイナリ ファイル) を提供します。

何度か試行し、サンプルとフォーラムを調べた後、この特定のケースを解決する方法を見つけることができませんでした. エンドポイントを呼び出すことができました。デバッグ ログを見ると、soap 内部メッセージで応答がバイナリとして転送されていることがわかります。次に、MultipartFormDataFormatter を使用する必要があると思います。私がフォーマッタのコードを理解している限り、子ごとに 1 つの部分を作成するには、内部 SOAP メッセージの本文のすべての子ノードが必要です。

そこで、バイナリ ノードの兄弟ノードとして XML コンテンツを追加しようとしました (メッセージはログで期待どおりに表示されます)。

<property name="messageType" value="multipart/form-data" scope="axis2"/>
<property name="ContentType" value="multipart/form-data" scope="axis2"/>

正しいフォーマッタを呼び出すようにしてください。

残念ながら、これは機能していないようです。応答は確かに multipart/form-data にありますが、データは 0 バイトです。

何か助けはありますか?

ありがとうヤニック

4

3 に答える 3

0

multipart/form-data メッセージ形式を使用するには、axis2.xml ファイルで Binary Relay ビルダーを有効にする必要があります。

    <messageBuilder contentType="multipart/form-data"
                    class="org.wso2.carbon.relay.BinaryRelayBuilder"/>


    <messageFormatter contentType="multipart/form-data"
                    class="org.wso2.carbon.relay.ExpandingMessageFormatter"/>
于 2013-06-27T04:34:26.420 に答える
0

ご回答有難うございます。

Binary Relay ビルダーを有効にしていくつかのテストを行いましたが、期待していた正確なマルチパート応答が得られませんでした。

というわけで、ついに独自の Formatter を作成しました。ボディの子からマルチパート レスポンスを構築し、一部の特定のプロパティを探して、パート コンテンツ ID、転送エンコーディング、コンテンツ タイプなどのヘッダー情報を指定します。

于 2013-07-09T12:49:17.140 に答える