Mule ESB Flow调用SOAP不起作用,但是从SOAP UI开始工作

时间:2018-02-14 07:58:59

标签: soap mule mule-studio anypoint-studio mule-esb

详细信息:我在MuleESB中创建了流程,它在没有任何参数的情况下调用Web服务,只是在属性中发送用户名,密码和令牌,它工作正常。

但第二个API我想在调用soap请求时发布一些参数,但我不知道如何使用它我尝试通过set payload但没有响应。

apollo-link-error

1 个答案:

答案 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服务。

谢谢。