2013-06-19 6 views
2

У меня поток потока мыла, который получает входящий запрос через <cxf:proxy-service>. У меня есть полезная нагрузка сразу после нее, чтобы получить полезную нагрузку в виде строки.Как Mule <объект-строка-трансформатор> отличается от message.getPatyloadAsString()

Вот мой поток:

<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 по-разному отличаются?

UPDATE: Заменяя <set-payload value="#[message.payloadAs(java.lang.String)]"/> с <object-to-string-transformer> в моем выше потоке, #[payload] дает [email protected] вместо из atcual XML

+0

Оба должны быть эквивалентными. Итак, что вы подразумеваете под «это не работает». –

+0

Пожалуйста, смотрите мое обновление –

ответ

10

message.payloadAs(java.lang.String) опирается на основы автоматического преобразования мула: Я предположил, что это берет <xml:dom-to-xml-transformer> вместо <object-to-string-transformer> как наиболее подходящий трансформатор.

+0

pefecto !! Ты восхитителен :) –

Смежные вопросы