多个ESB调用SOAP API显示空白

时间:2018-02-15 08:42:10

标签: web-services mule postman anypoint-studio mule-esb

我正在尝试使用从SOAPUI工具运行良好的SOAP API,但是在从Mule流程调用它时它在POSTMAN中显示空白结果,下面是我的流量xml,任何人都可以帮助我吗?

<flow name="xxxx">
<http:listener config-ref="HTTP_Listener_Configuration" path="/xxxx" allowedMethods="POST" doc:name="HTTP"/>
<set-property propertyName="APIKey" value="xxxx-xxxx-xxxx-xxxx-xxxx" doc:name="Property"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/xml
%namespace ns0 http://localhost/eDetails:eDetailsWSD
---
{
ns0#eDetails: {
eDReq: {
IDEmp: "",
AllEmp: ""
}
}
}]]></dw:set-payload>
</dw:transform-message>
<ws:consumer config-ref="Web_Service_Consumer" operation="eDetails" doc:name="Web Service Consumer"/>
</flow>

2 个答案:

答案 0 :(得分:0)

您需要使用webservice使用者有效负载并将其转换为可读格式。默认情况下,它不会为您打印任何内容。

答案 1 :(得分:0)

确保在Postman或SOAP UI中选择application / xml作为内容类型,然后选择POST。使用CXF并选择Operation as Proxy Service,提供详细信息。 Selct和provode(WSDL,支持MTOM,SOAP标头,SOAP 1.2) 确保发布XML请求&#34; POST&#34;允许方法中的方法。 使用2个变压器。 XML到DOM和DOM到XML。 使用

记录请求

[message.payloadAs(java.lang.String中)]

使用groovy脚本转换器来检索整个有效负载。

def userSoapRequest = new XmlSlurper().parseText(payload);

def userId = userSoapRequest.userId.text();
message.setInvocationProperty('userId', userId);

6.像上面一样检索userId,并且类似地检查所有元素。 7.根据需要处理它们。