我想知道如何从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请求的最佳方法。 什么是最好的方式?
希望这可以被理解。
如果有人可以帮助我,我感激不尽。 提前谢谢!
答案 0 :(得分:0)
一种方法是使用转换消息组件:
app.get('/test_feature', function (req, res, next) {
next(new Error("asdasdad"));
});
答案 1 :(得分:0)
我不完全确定你的意思&#34;我想在这个肥皂请求的主体中发送一个值&#34;。根据该语句,我假设您要在SOAP请求中插入一个值。你可以尝试如上所述的数据编织。
此外,xpath是用于从XML导航和检索值的东西。但不插入价值。
答案 2 :(得分:0)
我正在处理相同的情况。 使用 Xpath 解析 Soap Xml 并使用 SetVariable 设置变量,或者如果您想解析多个参数使用消息属性< / strong>设置,以便您不会填充变量序列。 干杯!