我有一个通过<cxf:proxy-service>
获取入站请求的soap 服务流。 .我在它之后有一个设置的有效负载,以将有效负载作为字符串。
这是我的流程:
<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>
替换它,它不起作用。
这两者在本质上有何不同?
更新:
更换 <set-payload value="#[message.payloadAs(java.lang.String)]"/>
与 <object-to-string-transformer>
在我上面的流程中,#[payload]
给 com.ctc.wstx.sr.ValidatingStreamReader@429eb61a
而不是实际的 XML
最佳答案
message.payloadAs(java.lang.String)
依赖于 Mule 的自动转换框架:我想它会选择 <xml:dom-to-xml-transformer>
而不是 <object-to-string-transformer>
作为最合适的变压器。
关于mule - Mule <object-to-string-transformer> 与 message.getPatyloadAsString() 有何不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17198374/