Я создал API, который отправляет сообщения на несколько конечных точек с помощью посредника клонирования.Я также использовал совокупный посредник для сбора сообщений, возвращаемых конечными точками в одно сообщение, и отправки его обратно клиенту.Ниже приведена последовательность, которая имеет совокупный посредник:
<outSequence>
<aggregate id="GetOpenTasksReq">
<completeCondition>
<messageCount max="-1" min="-1"/>
</completeCondition>
<onComplete expression="//jsonObject" xmlns:m0="http://ws.wso2.org/dataservice">
<log level="custom" separator=",">
<property name="MessageFlow" value="======================= Sending Back the Aggregated Responses. ==============="/>
</log>
<log level="full" separator=","/>
<enrich>
<source clone="true" xpath="//tasks"/>
<target action="child" type="body"/>
</enrich>
<property name="messageType" value="application/json" scope="axis2"/>
<send/>
</onComplete>
</aggregate>
<send/>
</outSequence>
Предполагалось, что он вернет
{
"tasks": [
{
"id": 10,
"desc": "New Assignment Item",
"due": "2019-02-18T06:23:41+07:00",
"link": "https://[host]:[port]/viewtask?id=10"
},
{
"id": 1,
"desc": "New Assignment Item",
"due": "2019-02-18T06:23:41+07:00",
"link": "https://[host]:[port]/viewtask?id=1"
},
{
"id": 33,
"desc": "New Assignment Item",
"due": "2019-02-18T06:23:41+07:00",
"link": "https://[host]:[port]/viewtask?id=33"
}
]
}
Но вместо этого я получил:
{
"tasks": [
{
"id": 10,
"desc": "New Assignment Item",
"due": "2019-02-18T06:23:41+07:00",
"link": "https://[host]:[port]/viewtask?id=10"
},
{
"id": 10,
"desc": "New Assignment Item",
"due": "2019-02-18T06:23:41+07:00",
"link": "https://[host]:[port]/viewtask?id=10"
},
{
"id": 1,
"desc": "New Assignment Item",
"due": "2019-02-18T06:23:41+07:00",
"link": "https://[host]:[port]/viewtask?id=1"
},
{
"id": 33,
"desc": "New Assignment Item",
"due": "2019-02-18T06:23:41+07:00",
"link": "https://[host]:[port]/viewtask?id=33"
}
]
}
По некоторым причинамодин из ответов от одной из конечных точек повторяется.Я попытался повторить запрос к API на ESB, но он всегда повторял один из ответов.Не могли бы вы помочь мне, посмотрев на мою совокупную конфигурацию посредника и выяснив, есть ли какая-либо ошибка?Как обычно, спасибо заранее.