Wso2esb wso2 esb聚合和响应扩展
我编写了一个代理来聚合来自不同DSS服务的消息,并将所有内容组合到一个响应中。代理配置如下所示Wso2esb wso2 esb聚合和响应扩展,wso2esb,aggregation,Wso2esb,Aggregation,我编写了一个代理来聚合来自不同DSS服务的消息,并将所有内容组合到一个响应中。代理配置如下所示 <?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse" name="AggregateEmpMessageProxy" transports="https,http" statistics="disable" tr
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="AggregateEmpMessageProxy"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<log level="full"/>
<clone>
<target>
<sequence>
<payloadFactory media-type="xml">
<format>
<p:select_with_key_emp_id_operation xmlns:p="http://ws.wso2.org/dataservice">
<p:id>$1</p:id>
</p:select_with_key_emp_id_operation>
</format>
<args>
<arg xmlns:m="http://ws.wso2.org/dataservice"
evaluator="xml"
expression="//m:select_with_key_emp_id_operation/m:id"/>
</args>
</payloadFactory>
<header name="Action"
scope="default"
value="http://ws.wso2.org/dataservice/select_with_key_emp_id_operation"/>
<send>
<endpoint name="ID_Service">
<address uri="http://compute-1.amazonaws.com:9767/services/emp_id_DataService.HTTPEndpoint"/>
</endpoint>
</send>
</sequence>
</target>
<target>
<sequence>
<payloadFactory media-type="xml">
<format>
<p:select_with_key_emp_desig_operation xmlns:p="http://ws.wso2.org/dataservice">
<p:id>$1</p:id>
</p:select_with_key_emp_desig_operation>
</format>
<args>
<arg xmlns:m="http://ws.wso2.org/dataservice"
evaluator="xml"
expression="//m:select_with_key_emp_id_operation/m:id"/>
</args>
</payloadFactory>
<header name="Action"
scope="default"
value="http://ws.wso2.org/dataservice/select_with_key_emp_desig_operation"/>
<send>
<endpoint name="Exp_Service">
<address uri="http://compute-1.amazonaws.com:9767/services/emp_desig_DataService.HTTPEndpoint"/>
</endpoint>
</send>
</sequence>
</target>
<target>
<sequence>
<payloadFactory media-type="xml">
<format>
<p:select_with_key_emp_exp_operation xmlns:p="http://ws.wso2.org/dataservice">
<p:id>$1</p:id>
</p:select_with_key_emp_exp_operation>
</format>
<args>
<arg xmlns:m="http://ws.wso2.org/dataservice"
evaluator="xml"
expression="//m:select_with_key_emp_id_operation/m:id"/>
</args>
</payloadFactory>
<header name="Action"
scope="default"
value="http://ws.wso2.org/dataservice/select_with_key_emp_exp_operation"/>
<send>
<endpoint name="Desig_Service">
<address uri="http://compute-1.amazonaws.com:9767/services/emp_exp_DataService.HTTPEndpoint"/>
</endpoint>
</send>
</sequence>
</target>
</clone>
</inSequence>
<outSequence>
<aggregate>
<completeCondition>
<messageCount/>
</completeCondition>
<onComplete xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/"
expression="/s11:Envelope/s11:Body/child::*[position()=1] | /s12:Envelope/s12:Body/child::*[position()=1]">
<send/>
</onComplete>
</aggregate>
</outSequence>
</target>
<parameter name="enableMTOM">false</parameter>
<description/>
</proxy>
$1
$1
$1
假的
我得到的答复是
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body>
<result xmlns="http://ws.wso2.org/dataservice">
<id>1</id>
<name>meeran</name>
</result>
<result xmlns="http://ws.wso2.org/dataservice">
<designation>engineer</designation>
<level>B2</level>
</result>
<result xmlns="http://ws.wso2.org/dataservice">
<age>26</age>
<exp>3</exp>
</result>
</soapenv:Body>
</soapenv:Envelope>
1.
米兰
工程师
地下二层
26
3.
但我的回答是,我正在寻找
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body>
<result xmlns="http://ws.wso2.org/dataservice">
<id>1</id>
<name>meeran</name>
<designation>engineer</designation>
<level>B2</level>
<age>26</age>
<exp>3</exp>
</result>
</soapenv:Body>
</soapenv:Envelope>
1.
米兰
工程师
地下二层
26
3.
如何实现上述响应?在聚合中介之后,我应该使用什么中介。请提供帮助。在aggregate/onComplete内部,在发送之前,您可以使用xslt中介,在xsl内部,您在结果节点上定义一个模板并复制其所有子节点