1

cxf:jaxws-clientをhttpアウトバウンドエンドポイントと組み合わせて使用​​して、Mule3.3を使用してWebサービスを利用しようとしています。操作によって返されたマーシャリングされていないJavaオブジェクトを受信するかどうかを示す、いくつかのソース(Mule CXF Marshall Responseなど)を読みました。cxf:jaxws-client要素をアウトバウンドエンドポイント内に配置する必要があります。

<http:outbound-endpoint host="localhost" port="9001" path="crmService?wsdl">
   <cxf:jaxws-client operation="getSomething" serviceClass="com.something.Service" />
</http:outbound-endpoint>

ただし、これを試してみると、MuleStudioで「JAX-WSクライアントを要素HTTPの子にすることは許可されていません」というスキーマエラーが発生します。上記が許可されていない場合、操作によって返されたマーシャリングされていないオブジェクトを取得するにはどうすればよいですか?

4

1 に答える 1

2

問題は、Studio がエンドポイント内のネストされた MP をサポートしていないことです。必要なことは、送信エンドポイントの前に jaxws-client を配置することです。

CXF MP の動作方法により、次の MP を処理してから、jaxws クライアントに戻り、応答をアンマーシャリングします。したがって、アウトバウンド エンドポイントの後のペイロードは SOAP メッセージになります。POJO を取得するには、jaxws クライアントとアウトバウンド エンドポイントでサブフローを宣言する必要があります。サブフローの実行後、メイン フローは必要に応じて POJO を取得します。

この動作が明確になるように、ドキュメントを更新する必要があります。

HTH エヴァ

于 2012-07-10T17:21:25.090 に答える