我有一個異步BPEL流程,我想從我的Java EE Web應用程序調用它。我怎樣才能做到這一點?我正在使用Oracle SOA-Suite 11g PS3。如何調用異步BPEL流程?
0
A
回答
0
異步SOAP/HTTP發送者基本上與同步SOAP/HTTP客戶端相同,只是它丟棄了響應。只檢查響應的HTTP狀態,以驗證接收者能夠理解您的消息。
異步接收器基本上是一個SOAP/HTTP服務器,它監聽請求的「ReplyTo/Address」字段中發送的地址。收到消息後,它會發送一個帶有「200」狀態碼的空響應。
使用WS-Addressing SOAP標頭字段「MessageID」(請求)和「RelatesTo」(響應)將發送和接收的消息關聯起來。
如果您對「低科技」解決方案感到滿意,您可以像HTTP over XML一樣發送/接收Asynch SOAP請求。 BPEL流程「AsynchDummy」將以下HTTP請求理解爲異步請求。 AsynchDummy是與JDeveloper默認生成的異步BPEL流程:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" env:encodingStyle="">
<env:Header>
<ReplyTo xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<Address>http://localhost:3333/my/j2ee/servlet</Address>
<PortType xmlns:ptns="http://xmlns.oracle.com/AsynchDummy">ptns:AsynchDummyCallback</PortType>
<ServiceName xmlns:snns="http://xmlns.oracle.com/AsynchDummy">snns:AsynchDummyCallbackService</ServiceName>
</ReplyTo>
<MessageID xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing" ans1:rootId="610005" xmlns:ans1="http://schemas.oracle.com/bpel" ans1:parentId="160005" ans1:priority="0">ABC123</MessageID>
</env:Header>
<env:Body>
<AsynchDummyProcessRequest xmlns="http://xmlns.oracle.com/AsynchDummy">
<input>this is the request</input>
</AsynchDummyProcessRequest>
</env:Body>
</env:Envelope>
不要忘了SOAPAction HTTP頭設置爲「啓動」(包括引號)。
你可以期望從BPEL過程的回調客戶端的步驟類似的消息:
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:add="http://schemas.xmlsoap.org/ws/2003/03/addressing" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<add:RelatesTo>ABC123</add:RelatesTo>
<add:MessageID ans1:rootId="" ans1:parentId="" ans1:priority="0" xmlns:ans1="http://schemas.oracle.com/bpel">ABC456</add:MessageID>
</soap-env:Header>
<soap-env:Body>
<AsynchDummyProcessResponse xmlns="http://xmlns.oracle.com/AsynchDummy">
<result>this is the result</result>
</AsynchDummyProcessResponse>
</soap-env:Body>
</soap-env:Envelope>
相關問題
- 1. 異步BPEL流程超時
- 2. 如何從OSB調用異步Bpel進程
- 3. Eclipse的BPEL Designer:如何調試BPEL流程
- 4. WSO2 BPS BPEL重用異步進程
- 5. BPEL:異步/同步模式
- 6. 異步調用中的控制流程
- 7. WS-Addressing回覆異步bpel進程中的回調
- 8. 測試BPEL流程?
- 9. Javascript同步流程當有異步函數調用時
- 10. BPEL流程監控目錄
- 11. BPEL流程部署時間
- 12. BPEL流程的參數
- 13. SOA BPEL流程未加載
- 14. 如何從非異步方法異步調用異步方法
- 15. 客戶端異步調用流星?
- 16. 流星未來異步調用
- 17. 如何使異步調用同步
- 18. 如何使異步調用同步
- 19. 異步調用程序集
- 20. 異步進程調用
- 21. 線程與異步調用
- 22. 異步流寫入線程
- 23. F#異步工作流程
- 24. node.js中的異步流程
- 25. F#異步工作流程
- 26. Oracle SOA中的同步BPEL流程的回覆組件
- 27. 從WSO2 ESB調用代理服務到BPEL工作流程
- 28. WinRT跨線程同步異步調用
- 29. 如何從C#調用和處理異步F#工作流#
- 30. 如何調試$ http異步調用?