我有一个soap服务流程,通过<cxf:proxy-service>
获取入站请求。我之后有一个java组件将有效负载作为String。
这是我的流程:
<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>
<component class="test.GetPayload" />
.
.
.
</flow>
这是我的GetPayload类:
public Object onCall(MuleEventContext eventContext) throws Exception {
String requestXml = null;
try {
requestXml = eventContext.getMessage().getPayloadAsString();
logger.debug("Request XML " + requestXml);
} catch (Exception e) {
e.printStackTrace();
}
return requestXml;
}
我需要一种方法来摆脱GetPayload类并在我的mule-config
中做同样的事情。我试过了
<object-to-string-transformer/>
和
<set-payload value="#[message.payloadAsString]"/>
但message.payloadAsString
抛出异常。我不明白为什么。
答案 0 :(得分:4)
使用:#[message.payloadAs(java.lang.String)]