Xml 如何在mule中从soap端点获取请求参数?
我想知道如何从soap端点获取请求参数。 更具体地说,我有一个基于http listener的端点,我通过soap客户机调用该端点,我希望在该soap请求体中发送一个值。 这是技术规格 我正在使用mule 3.8和Anypoint Studio 6.1.2 这是我风景的一部分 以下是我的mule xml的一部分:Xml 如何在mule中从soap端点获取请求参数?,xml,soap,mule,esb,anypoint-studio,Xml,Soap,Mule,Esb,Anypoint Studio,我想知道如何从soap端点获取请求参数。 更具体地说,我有一个基于http listener的端点,我通过soap客户机调用该端点,我希望在该soap请求体中发送一个值。 这是技术规格 我正在使用mule 3.8和Anypoint Studio 6.1.2 这是我风景的一部分 以下是我的mule xml的一部分: <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081"
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081"
doc:name="HTTP Listener Configuration"/>
<cxf:configuration name="CXF_Configuration" enableMuleSoapHeaders="true" initializeStaticBusInstance="true"
doc:name="CXF Configuration"/>
<ws:consumer-config name="Web_Service_Consumer" service="KarmaService" port="KarmaPort"
serviceAddress="http://localhost:8080/TestingWS/Karma" wsdlLocation="http://localhost:8080/TestingWS/Karma?wsdl" doc:name="Web Service Consumer"/>
<flow name="pichondemonoFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
<cxf:proxy-service configuration-ref="CXF_Configuration" payload="body" doc:name="CXF"/>
<set-variable variableName="pichonVar" value="#[message.inboundProperties.'http.query.params'.arg0]"
doc:name="Variable"/>
<choice doc:name="Choice">
.
.
.
.
.
.
.
.
下面是来自SoapUI客户端的请求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sup="http://support.cxf.module.mule.org/">
<soapenv:Header/>
<soapenv:Body>
<sup:invoke>
<!--Optional:-->
<sup:arg0>Some value</sup:arg0>
</sup:invoke>
</soapenv:Body>
</soapenv:Envelope>
一些价值
我还读了一些关于xpath3的文章,但我不知道这是否是解析xml请求的最佳方法。
最好的方法是什么
希望这能被理解
如果有人能帮助我,我将不胜感激。
提前谢谢 一种方法是使用转换消息组件:
<dw:transform-message metadata:id="234ee930-89d2-45ef-b888-96e940446fbe" doc:name="Transform Message">
<dw:input-payload doc:sample="C:\Users\willekr\Desktop\sample.xml"/>
<dw:set-payload><![CDATA[
%dw 1.0%output application/java
%namespace sup http://support.cxf.module.mule.org/
%namespace soapenv http://schemas.xmlsoap.org/soap/envelope/
---
payload.soapenv#Envelope.soapenv#Body.sup#invoke.sup#arg0
]]>
</dw:set-payload>
</dw:transform-message>
一种方法是使用转换消息组件:
<dw:transform-message metadata:id="234ee930-89d2-45ef-b888-96e940446fbe" doc:name="Transform Message">
<dw:input-payload doc:sample="C:\Users\willekr\Desktop\sample.xml"/>
<dw:set-payload><![CDATA[
%dw 1.0%output application/java
%namespace sup http://support.cxf.module.mule.org/
%namespace soapenv http://schemas.xmlsoap.org/soap/envelope/
---
payload.soapenv#Envelope.soapenv#Body.sup#invoke.sup#arg0
]]>
</dw:set-payload>
</dw:transform-message>
我不太清楚您所说的“我希望在这个soap请求的主体中发送一个值”是什么意思。根据该语句,我假设您希望在SOAP请求中插入一个值。您可以如上所述尝试dataweave
此外,xpath是用于从XML导航和检索值的东西。但不插入值。我不太清楚您所说的“我希望在这个soap请求的主体中发送一个值”是什么意思。根据该语句,我假设您希望在SOAP请求中插入一个值。您可以如上所述尝试dataweave
此外,xpath是用于从XML导航和检索值的东西。但不是插入值。我正在处理相同的场景。 使用Xpath解析Soap Xml并使用SetVariable在变量中进行设置,或者如果要解析多个参数,请使用消息属性进行设置,以便流中不会充满变量序列。
干杯 我正在处理相同的场景。 使用Xpath解析Soap Xml并使用SetVariable在变量中进行设置,或者如果要解析多个参数,请使用消息属性进行设置,以便流中不会充满变量序列。 干杯