我有一個項目來了,這需要我從我的Java應用程序中調用一個SOAP Web服務。我想知道我應該用什麼工具集來做到這一點?所有的建議讚賞。爲Web服務編寫Java客戶端的最佳方式是什麼?
我已經看了JAX-WS和Axis2,但這些似乎主要用於Web服務的創造者,而不是消費者,我只希望消費。
謝謝!所有的
我有一個項目來了,這需要我從我的Java應用程序中調用一個SOAP Web服務。我想知道我應該用什麼工具集來做到這一點?所有的建議讚賞。爲Web服務編寫Java客戶端的最佳方式是什麼?
我已經看了JAX-WS和Axis2,但這些似乎主要用於Web服務的創造者,而不是消費者,我只希望消費。
謝謝!所有的
首先,你需要wsdl。一些服務提供商可能會分發Java客戶端類,但WSDL是最安全的方法。
一旦擁有它,運行對apache-cxf或analogous的工具apache-axis反對它。它會創建一堆Java類(您只需要客戶端一面)。這些工具還能夠生成服務器端代碼,因此,您的印象是他們瞄準服務開發人員。
這是你所需要的 - 客戶端類將處理XML編組/解組和HTTP連接你。只需使用適當的存根實現WS端點接口。
您還可以使用WebServiceTemplate
從spring-ws組合。
JAX-WS提供了一個名爲您對SOAP服務的.wsdl運行wsimport
工具。它會生成一大堆客戶可以用來與服務交互的類。之後,它只是普通的Java編碼。
如果你想要一個快速功能的客戶端,你可以使用JAX-WS工具來生成你需要使用Web服務的代碼。但是有時候這種方法會產生非可移植的代碼(就像使用Websphere工具一樣),但是提高生產力可能也是值得的。 Spring Framework還提供了構建和使用Web服務的工具,但它需要額外的努力才能開發客戶端,並且可能需要使用JAXB或Castor等技術手動映射輸入/輸出消息。你也可以直接用Spring讀取XML,這是一個靈活的框架,可以確保你在容器之間的可移植性,但它需要額外的努力和時間。
每種方法都有其優點和缺點。這取決於你自己決定。
如果使用的是Eclipse,你可能想查看該解決方案:
What is the easiest way to generate a Java client from an RPC encoded WSDL