Я использую Wso2 BPS для написания асинхронного рабочего процесса. Чтобы связать запрос и обратный вызов, я использую элемент в запросе и атрибут в обратном вызове. Определения коррелятора:
По запросу
‹Bpws: property name =" correlatorProp "type =" xs: string "/>‹ bpws: propertyAlias propertyName = "tns: correlatorProp" messageType = "ws-drt: pushIn" part = "params">
‹Bpws: query>‹! [CDATA [/ drt-type: resources / res: resource / res: uuid]]> ‹/ pws: query>
‹ / bpws: propertyAlias>Для обратного вызова:
‹Bpws: propertyAlias propertyName =" tns: correlatorProp "messageType =" ws-dpalert: pushIn "part =" params ">‹ bpws: query> ‹! [CDATA [@conversationId]]>‹ / bpws: query>
‹/ Bpws: propertyAlias>
Затем я тестирую этот рабочий процесс с помощью следующего запроса / обратного вызова.
Запрос ‹soapenv: Envelope xmlns: soapenv =" http://schemas.xmlsoap.org/soap/envelope/ ">‹ soapenv: Body> ‹type: push xmlns: res =" http://esa.int/sais- dpc / schema / resource "timestamp =" 2001-12-17T09: 30: 47.0Z "sequenceNumber =" 1 "lastResponse =" true ">‹ type: resources> ‹res: resource>‹ res: uuid> 40000 ‹/ res : uuid>
‹/ type: resources>‹ / type: push> ‹/ soapenv: Body>‹ / soapenv: Envelope>Перезвоните:
‹Soapenv: Envelope xmlns: soapenv =" http://schemas.xmlsoap.org/soap/envelope/ ">‹ soapenv: Body> ‹p: push xmlns: p =" http://esa.int/sais-dpc / service / спецификация / dp-alert-provider / type "talkId =" 40000 "sequenceNumber =" 0 "lastResponse =" true ">‹ p: alertsRef> 40000 ‹/ p: alertsRef>‹ / p: push> ‹/ soapenv : Body> ‹/ soapenv: Envelope>
Но движку не удалось соотнести эти два сообщения. Есть ли у кого-нибудь опыт по этой проблеме?
Спасибо,
Минь Три.