详细信息:我在MuleESB中创建了流程,它在没有任何参数的情况下调用Web服务,只是在属性中发送用户名,密码和令牌,它工作正常。
但第二个API我想在调用soap请求时发布一些参数,但我不知道如何使用它我尝试通过set payload但没有响应。
apollo-link-error
答案 0 :(得分:0)
更新回答:
<dw:transform-message metadata:id="XXXXX" doc:name="Transform Message">
<dw:set-payload><![CDATA[
%output application/xml skipNullOn="everywhere"
%namespace ns0 localhost/getDetails:getDetailsWSD
---
{
ns0#getDetails: {
getDetailsOrder: {
ID: payload.ns0#getDetails.getDetailsOrder.ID,
AllData: payload.ns0#getDetails.getDetailsOrder.AllData
}
}
}]]>
</dw:set-payload>
</dw:transform-message>
在您的场景中:您正在传递XML格式的正文,有时在Postman请求中传递一个空体。
传递空体会导致有效负载为{NullPayload}
。为了解决这个问题,我们必须删除显式定义输入mime类型:<dw:input-payload mimeType="application/xml"/>
。
在转型中:ID: payload.ns0#getDetails.getDetailsOrder.ID,
。您正在从空的有效负载中检索值,这将失败。为避免失败,我们添加了skipNullOn="everywhere"
。您可以阅读更多相关信息here。
我自己尝试了转换,结果就是:
<?xml version='1.0' encoding='UTF-8'?>
<ns0:getDetails xmlns:ns0="http://localhost/getDetails:getDetailsWSD">
<getDetailsOrder/>
</ns0:getDetails>
我认为我们已完成有关转换空载荷的初始问题。您现在关注的是使用Web服务。
谢谢。