2013-11-20 30 views
1

我需要從我的CXF(JAX WS)Web服務層發送異步消息給客戶端...異步反應變量 - CXF JAXWS

怎樣的客戶將能夠接收它的步驟,需要採取什麼?關心實現這個嗎?是否有示例教程可用?

回答

1

您有兩種選擇來實現客戶端與CXF的異步調用。

  • 您可以查詢響應服務
  • 您可以定義服務器的工作已經完成

每個解決方案都有優點和缺點,這將要執行的回調,所以選擇根據自己的需要。

輪詢給你一個Response對象,你可以通過response.isDone()來測試它是否完成了調用。 (如果沒有,等待一段時間,然後發送另一個請求)

回調爲您提供了一個包裝調用的Future對象,您可以在調用服務時定義一個AsyncHandler來定義在進程完成。

從服務器端,你應該看一看的WS-Addressing(定義是否需要回調的replyTo端點)和WS-Policy:http://cxf.apache.org/docs/ws-addressing.html

請注意,如果你需要使用回調(這似乎所以),您將不得不在客戶端定義CXF客戶端以啓用WS尋址(在cxf總線上)。

+0

謝謝Zenbeni ...我試着按照你的建議行使。你可以參考http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/jaxws_async/ – sskumar86

+0

Lets假設我們有n個類似的客戶端等待來自服務器的異步通知(web服務正在運行)。如何知道每個客戶端並相應地通知它?如何實現這一點?另一個角落案例是,從服務器端,我們將unsolictedly提供一些通知給客戶端...怎麼可能在java6中? – sskumar86