Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何在mule中从soap端点获取请求参数?_Xml_Soap_Mule_Esb_Anypoint Studio - Fatal编程技术网

Xml 如何在mule中从soap端点获取请求参数?

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"

我想知道如何从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" 
    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在变量中进行设置,或者如果要解析多个参数,请使用消息属性进行设置,以便流中不会充满变量序列。 干杯