stWSO2ESB OutSequence处理

时间:2012-10-30 17:35:05

标签: esb wso2esb bus synapse

我正在通过WSO2ESB中的XSLT将XML请求转换为SOAP,只是想知道是否可以使请求参数可用于响应?

E.g。

<request>
<test>123</test>
<param1>testing</param1>
</request>

- &GT;转换为SOAP

<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">#S:Body><ns2:testrequest xmlns:ns2="http://xml.testing.com/test"><teststring>testing</teststring></ns2:testrequest></S:Body></S:Envelope></soapenv:Body></soapenv:Envelope>

在回复中

<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:testresponse xmlns:ns2="http://xml.testing.com/test"><responsestring>success</responsestring></ns2:testresponse></S:Body></S:Envelope></soapenv:Body></soapenv:Envelope>

我想以XML格式返回

<responsestring>
<test>123</test>
<return1>success</return1>
</responsestring>

如您所见,123未发送到服务器且未从服务器收到。但是,客户端正在发送此参数,我想在请求中使用此参数并发回作为响应,这可能吗?怎么样?我对突触非常新,对WSO2ESB来说很新,有人可以开导我吗?

感谢。

2 个答案:

答案 0 :(得分:0)

是的,这是可能的。您可以在Insequence中使用property mediator将所需值设置为属性,然后使用enrich mediator将其添加到响应的后序中。

答案 1 :(得分:0)

现在就开始工作了。 只需将属性介体与xSLT一起添加到insequence和outsequence中,其中xslt试图从test属性中获取值。就是这样!

InSequence的

 <property xmlns:ns="http://org.apache.synapse/xsd" name="TEST" expression="//request/*[local-name()=test]" scope="default"/>

outsequence

<xslt key="xxxx.xslt">
<property name="test" expression="get-property('TEST')"/>
</xslt>