0

I use Wso2 BPS to write an asynchronous workflow. To correlate the request and the callback I use an element in the request and an attribute in the callback. The definitions of the correlator is:

  • For the request

    < 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>

  • For the callback:

    < bpws:propertyAlias propertyName="tns:correlatorProp" messageType="ws-dpalert:pushIn" part="params"> < bpws:query>< ![CDATA[@conversationId]]>< /bpws:query>
    < /bpws:propertyAlias>

Then I test this workflow with the below request/callback

  • Request < 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>

  • Callback:

< soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> < soapenv:Body> < p:push xmlns:p="http://esa.int/sais-dpc/service/specification/dp-alert-provider/type" conversationId="40000" sequenceNumber="0" lastResponse="true"> < p:alertsRef>40000< /p:alertsRef> < /p:push> < /soapenv:Body> < /soapenv:Envelope>

But the engine failed to correlate the two messages. Is there any body have experience that issue?

Thanks,

Minh Tri.

4

1 回答 1

2

我能够重现此问题并创建了一个jira来跟踪该问题。我们将在 WSO2 BPS 的未来版本中解决此问题。

目前唯一的解决方法是使用元素值作为相关属性别名。

于 2012-06-11T17:04:37.960 回答