3

を介してインバウンド要求を取得する SOAP サービス フローがあります<cxf:proxy-service>。ペイロードを文字列として取得するために、その直後にペイロードを設定しています。

これが私のフローです:

<flow name="soapService">
    <http:inbound-endpoint address="${service.address}" exchange-pattern="request-response">
        <cxf:proxy-service wsdlLocation="classpath:service.wsdl" namespace="http://pennmutual.com/services/mvi" service="MVIService" enableMuleSoapHeaders="false"/>                
    </http:inbound-endpoint>        
    <set-payload value="#[message.payloadAs(java.lang.String)]"/>
  .
  .
  .
 </flow>

<set-payload value="#[message.payloadAs(java.lang.String)]"/>動作しますが、 に置き換えると<object-to-string-transformer>動作しません。

これら2つは本質的にどのように異なりますか?

更新:上記のフローで 置き換える<set-payload value="#[message.payloadAs(java.lang.String)]"/>と、atcual の代わりに与えられます<object-to-string-transformer>#[payload]com.ctc.wstx.sr.ValidatingStreamReader@429eb61aXML

4

1 に答える 1

10

message.payloadAs(java.lang.String)Mule の自動変換フレームワークに依存しています。最適なトランスフォーマーとしてでは<xml:dom-to-xml-transformer>なく、選択するものと想定していました。<object-to-string-transformer>

于 2013-06-19T19:04:13.453 に答える