Mule <object-to-string-transformer>与message.getPatyloadAsString()的不同之处

Cha*_*ana 3 mule

我有一个肥皂服务流程,通过它获取入站请求<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>
Run Code Online (Sandbox Code Playgroud)

<set-payload value="#[message.payloadAs(java.lang.String)]"/>有效,但如果我用它替换它<object-to-string-transformer>,它不起作用.

这两个本身有何不同?

更新: 关于更换<set-payload value="#[message.payloadAs(java.lang.String)]"/><object-to-string-transformer>在我的上述流程,#[payload]使com.ctc.wstx.sr.ValidatingStreamReader@429eb61a代替atcualXML

Dav*_*sot 10

message.payloadAs(java.lang.String)依赖于Mule的自动转换框架:我认为它选择的<xml:dom-to-xml-transformer>不是<object-to-string-transformer>最合适的变换器.