Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How's Mule <object-to-string-transformer> different than message.getPatyloadAsString()

Tags:

mule

I've a soap service flow which gets inbound request through <cxf:proxy-service>. I have a set payload right after it to get payload as String.

Here is my flow:

<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)]"/> works but if I replace it with <object-to-string-transformer>, it doesn't work.

How are these 2 inherently different?

UPDATE: On replacing <set-payload value="#[message.payloadAs(java.lang.String)]"/> with <object-to-string-transformer> in my above flow, #[payload] gives com.ctc.wstx.sr.ValidatingStreamReader@429eb61a instead of the atcual XML

like image 419
Charu Khurana Avatar asked Apr 09 '26 18:04

Charu Khurana


1 Answers

message.payloadAs(java.lang.String) relies on Mule's auto-transformation framework: I supposed it picks <xml:dom-to-xml-transformer> instead of <object-to-string-transformer> as the most appropriate transformer.

like image 59
David Dossot Avatar answered Apr 26 '26 13:04

David Dossot



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!