我們有一個Java API,需要使用SOAP/REST Web服務層進行補充/向前。如何使用帶Java的SOAP/REST Web服務異步回調
怎樣才能實現異步跨進程/服務器的界限呼叫使用
一)SOAP Web服務
B)的RESTful web服務
一些方法可能需要多次調用響應請求。
我們將使用Java/J2ee使用像CXF或Axis這樣的庫來實現SOAP /平安服務,或者使用Jax-RS/WS。
任何示例?陷阱?
謝謝,
我們有一個Java API,需要使用SOAP/REST Web服務層進行補充/向前。如何使用帶Java的SOAP/REST Web服務異步回調
怎樣才能實現異步跨進程/服務器的界限呼叫使用
一)SOAP Web服務
B)的RESTful web服務
一些方法可能需要多次調用響應請求。
我們將使用Java/J2ee使用像CXF或Axis這樣的庫來實現SOAP /平安服務,或者使用Jax-RS/WS。
任何示例?陷阱?
謝謝,
您的問題不清楚。我正在解釋您的問題,因爲您希望您的服務器端代碼以異步方式調用遠程REST Web服務。如果是這樣,那麼你最好的選擇就是使用java.util.concurrent的Futures特性,它將完成你想要的。如果我對問題的解釋是錯誤的,請更新您的問題,確切地說明異步操作需要發生的地方。
對於REST Web服務(除了GET)其他所有內容(POST/PUT ..)是異步的,它會返回操作的HTTP狀態代碼。
如果你想讓GET也是異步的,那麼你將不得不使用線程,我們在Spring框架中使用@Async註釋(它在內部產生一個線程)做了一次。
從get返回回調URL作爲響應並使用線程異步處理請求。
除此之外,對於SOAP/REST,一旦獲得請求,您就可以將其發佈到JMS隊列中以使服務異步。
大框架,強大的性能 - 這是他們的權利:
「」」
簡單的併發
編寫使用演員,STM &交易者簡單正確的併發應用程序。
事件驅動架構
異步事件驅動架構的完美平臺。永不阻止。
真正可擴展性多核或使用異步消息傳遞的多個節點
規模進行。
容錯
擁抱失敗。編寫使用Erlang式Actor監督器層次結構自我修復的應用程序。
透明遠程
遠程演員爲您提供高性能的透明的分佈式編程模型。
斯卡拉&的Java API
Scala和Java的API以及Spring和Guice的整合。部署在您的應用程序服務器中或獨立運行。 「」」
的Async Http Client是專爲這種類型的問題,設計了一個開源庫,它利用期貨和包裝了很多細節和麻煩了使異步調用的。
作者有一個很好的getting started guide並且有一個活躍的discussion group作者是一位非常有才華的開發者和項目正在不斷髮展
從文檔:。
該庫使用Java非阻塞I/O 來支持異步 操作。默認異步 提供商是建立在Netty的 (http://www.jboss.org/netty)時,Java NIO 客戶端服務器插槽框架 從JBoss的頂部,但庫暴露了 配置提供SPI允許 輕鬆插入其他框架。
@Vivek
GET是異步和其他HTTP方法 不是。
這是不正確的。請繼續閱讀AJAX :-)
實現異步操作的最佳方法之一是使用回調函數。對於REST API,API和Rest客戶端的設計應該支持這一點。例如,客戶端類應該自己傳遞或者它的內部類作爲列表器。服務器端的Rest API應該維護請求標識並在地圖中回調監聽器。一旦處理完成,它可以根據來自地圖的請求ID調用監聽器的方法。
真正的問題:你爲什麼要稱它爲異步?查看了Java EE方面的並行處理解決方案之後,不建議您自己在容器內生成子線程。
在你的情況下,它看起來像下面這樣: 1.你打算在WSDL(REST或SOAP或兩者)中創建一個包裝合同,如果你的客戶不只是瀏覽器(AJAX)(我的意思是你如果是需要從採用者(服務器端)調用的REST端點,則可以創建一個@CallBack結束ponint(http://docs.oracle.com/cd/E15051_01/wls/docs103/webserv_adv/callback.html) 或
-side),使用jAX_RS 2。0功能
注:以上假定它是點對點的,但在一個異步的方式
這裏有幾個選項:
見http://stackoverflow.com/questions/10877223/asynchronous-web-service-soap – cemsbr 2013-03-28 23:36:36