我創建了一個WS-BPEL流程將調用一個異步Web服務,並等待回調響應丟失。碳應用也成功部署到BPS中。在我的外部異步Web服務的ReplyTo屬性中的SOAPHeader
詳細
1.它需要通過HTTP基本身份驗證。
2.它需要肥皂信封中可用的肥皂標題。
3.它會處理請求併發送一個回調到它在肥皂標題中收到的ReplyTo地址,並使用MessageID關聯回調。
我deploy.xml文件BPEL流程看起來像這樣...
<?xml version="1.0" encoding="UTF-8"?>
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:callback.integration.service="http://callback.integration.service/"
xmlns:epr="http://wso2.org/bps/bpel/endpoint/config"
xmlns:sample="http://wso2.org/bps/sample"
xmlns:ws.integration.service="http://ws.integration.service/">
<process name="sample:Test">
<active>true</active>
<retired>false</retired>
<process-events generate="all"/>
<provide partnerLink="client">
<service name="sample:Test" port="TestPort"/>
</provide>
<provide partnerLink="IntegrationService">
<service name="callback.integration.service:IntegrationCallback" port="IntegrationResponsePort"/>
</provide>
<invoke partnerLink="IntegrationService">
<service name="ws.integration.service:IntegrationService" port="IntegrationRequestPort">
<epr:endpoint endpointReference="IntegrationService.epr"/>
</service>
</invoke>
</process>
</deploy>
的IntegrationService.epr文件看起來像這樣...
<wsa:EndpointReference
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com uep_schema.xsd"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:wsdl11="http://schemas.xmlsoap.org/wsdl/">
<wsa:Address>http://http://server:8080/integration/IntegrationService</wsa:Address>
<wsa:Metadata>
<id>SInvokeEPR</id>
<qos>
<enableAddressing />
</qos>
<transport type="http">
<authorization-username>username</authorization-username>
<authorization-password>password</authorization-password>
</transport>
</wsa:Metadata>
</wsa:EndpointReference>
現在,當我從碳服務管理控制檯測試bpel進程,但確實收到了對我的異步Web服務的請求。然而,肥皂信封看起來如下,它缺少一個適當的ReplyTo地址發送回調。
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:To>http://server:8080/integration/IntegrationService</wsa:To>
<wsa:ReplyTo>
<wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address>
</wsa:ReplyTo>
<wsa:MessageID>urn:uuid:91ac4ebd-b100-440e-a01d-c4a5c0d8a56f</wsa:MessageID>
<wsa:Action>http://ws.integration.service/IntegrationRequestPortType/createTask</wsa:Action>
</soapenv:Header>
<soapenv:Body>
...
</soapenv:Body>
</soapenv:Envelope>
現在我的需求是用回調回復此請求。回調肥皂信封將包含此MessageID,以便回調與正確的流程實例相關聯。
你如何得到正確的ReplyTo地址附加到肥皂頭?
我正在使用BPS版本3.0.0並使用最新的WSO2 Developer Studio版本。我已經做了BPEL過程acording爲[由阿齊茲這裏]提供的樣品(http://blog.afkham.org/2012/05/ws-bpel-spec-sample-using-wso2-bps.html) – 2013-03-04 11:51:33
我得到了與WS-BPEL相關集相關的相關性。不知何故基於ws-Addressing的關聯不起作用。 – 2013-03-15 04:49:22