2012-03-31 121 views
0

我們已經獲得了基於SOAP的web服務,但我們正在考慮使用RESTful網絡服務,因爲RESTful網絡服務比SOAP服務更快。由於兼容性原因,我們希望保留SOAP服務,因此會有兩個版本的服務:基於SOAP和RESTFUL。服務消費者可以選擇他們想使用哪一個。Java中的Restful和SOAP web服務

我的問題是RESTFUL webservices是web應用程序,所以我們必須將它們打包在WAR文件中,但JAX-WS必須放入JAR文件中,這樣兩個服務的端點纔會完全不同。然而,這兩個服務是相互之間的(它們是相同的服務,但接口是不同的),所以在同一端點上調用它們是合理的。

你有什麼想法如何解決這個問題?我可以創建一個可以成爲RESTFUL和SOAP服務的類嗎?

謝謝!

回答

0

我認爲這是ESB的理想情況。您應該具有實際的服務層,並通過ESB公開其他格式。

或者你可以通過ESB公開基於SOAP和REST的服務給公衆(由於許多可擴展性和可管理性的原因,我更喜歡這種服務),並讓ESB與實際服務對話以從客戶更喜歡。

如果您使用的是類似UltraESB的ESB,您可以在同一端點(URL)上公開同時使用SOAP和REST格式的服務,ESB會在與實際服務交談之前將其轉換爲相關格式,反之亦然。

+0

感謝Ruwan的回答。不幸的是,我們現在無法引入完整的ESB解決方案,現在我們需要一些可以實現這一點的框架Perphaps Apache CXF對我來說已經足夠了。 http://cxf.apache.org/docs/jax-rs-and-jax-ws.html – Viktor 2012-04-03 09:18:27