Spring學習(七)——開發Web Service的幾種方式

本文做者在學習使用Java開發Web Service(不包括Restful)時,因爲不知道Java有這麼多框架支持開發Web Service一度陷入迷惘,不知道這些框架各有java

什麼不一樣,各有什麼優缺點。通過幾天的查資料、實驗、失敗、再查資料、再實驗的過程,終於有了一個大概的瞭解,也把本身的學習成果跟你們分享一下:web

用Java開發Web Service通常有三種方式,本文在Idea下分別使用三種方式並結合Spring容器實現了三個Demo,下面爲你們一一介紹。spring

一、Axis、XFire和CXF方式瀏覽器

這幾種框架都採用「代碼優先」的方式開發Web Service,即先開發出普通的Java代碼,而後使用框架自動將Java對象方法發佈成Web Service。框架

Idea自帶Axis框架,在建立工程時選擇便可(Web Application->WebServices,Version中選擇Apache Axis)。ide

該方式的開發過程很簡單,實現好web service 類後,點擊Idea窗口中的Tool->Web Service->Generate wsdl from java code,配置好服務地址便可。學習

該示例較簡單未上傳。測試

二、Spring-WS方式url

該框架是「文檔優先」方式,即先制定出報文協議,而後再開發具體的服務應用。idea

Idea自帶該框架,在建立工程時選擇(Spring->Spring Web Services)便可自動下載相關包。

詳細開發步驟以下:

2.1 在web.xml中添加servlet

2.二、 在WEB-INF下創建配置文件spring-ws-servlet.xml

2.三、 在resources目錄下創建hello.wsdl

2.4 、建立web service 類和終結點

2.五、 在spring-ws-servlet.xml文件中配置終結點bean

示例Demo下載:http://files.cnblogs.com/wenjingu/springws.zip

三、JAX-WS方式

JAX-WS是JDK自帶的框架,它是Java的Web服務標準。該框架同時支持「代碼優先」方式和「文檔優先」方式,但彷佛對「文檔優先」方式的支持更好一些。

不少JAX-WS開發者都推薦使用「文檔優先」方式。Idea自帶該框架,在建立工程時選擇(Web Application->WebServices,Version默認)便可自動下載相關包。

開發步驟以下:

3.一、「代碼優先」方式與1相似

3.二、「文檔優先」方式與2相似

示例Demo下載:http://files.cnblogs.com/wenjingu/jaxws.zip 只傳了服務端,客戶端按4.2節的步驟建立便可。

四、測試

4.一、在瀏覽器輸入:http://localhost:8080/services/HelloWorld?wsdl能夠顯示該文件內容,輸入:http://localhost:8080/services/HelloWorld可顯示相似以下內容:

1

 

4.二、在Idea中建立一個WebService Client工程,idea會自動建立一些代碼,修改後以下所示:

public class HelloWorldClient {
  public static void main(String[] argv) {
      mypackage.HelloWorld service = new HelloWorldService().getHelloWorldPort();
      //invoke business method
      service.sayHelloWorldFrom("192.168.20.106");
  }
}

執行後會在服務端打印:Hello, world, from 192.168.20.106。

4.三、不少開發者建議用SoapUI測試,本文還沒有使用,有時間再研究下。

 

補充:

CXF如今已實現了JAX-WS2.0規範,開始提供對JAX-WS API的支持。

相關文章
相關標籤/搜索