Java開發WebService(使用Java-WS)


前言:

初學Java,因為工作需要,直接跳到開發WebService。以前用.NET開發過WebService,對比一下,Java的WebService開發部署難度高了不止一個檔次。網上的教程各式各異,剛開始我學着使用XFire開發,但是配置過程已經把我給搞糊塗了,弄了兩天沒搞好。

最后使用Java1.6的新特性,Java-WS專門用於開發WebService,發現這個方法特別的簡單(相對而言),但是其中還是有不少注意事項,我這篇主要是參考http://www.cnblogs.com/lee0oo0/archive/2013/01/25/2876357.html,但是我在參考這篇文章時遇到了不少的問題,會在我的文章里面指出來。

有關WebService的名詞定義,建議自行百度,或者參考http://blog.csdn.net/icecream0/article/details/6955524。

以下開始講解如何在MyEclipse中開發一個WebService。

 

內容:

我使用的是MyEclipse 2014,tomcat是內置的。
第一部分:如何在本地發布一個WebService。

1、新建一個Web Service Project

2、我的工程名是“EbonyWS”,WebService Framework選擇JAX-WS。

3、定義一個Java包,存放服務端的類與接口等。新建一個Java包:com.ebony.service

4、先定義一個服務需要具有的方法的接口。新建一個接口:IHello

 1 package com.ebony.service;
 2 
 3 /**
 4  * 服務需要具備的接口方法
 5  * @author Administrator
 6  *
 7  */
 8 public interface IHello {
 9     /**
10      * 必須具備的方法sayHello
11      * @param name    姓名
12      * @return
13      */
14     public String sayHello(String name);
15 }

5、定義此接口的一個實現類,實現類里的方法可以理解成最終調用WebService的具體函數所在地。新建一個類:HelloImpl

 1 package com.ebony.service;
 2 
 3 /**
 4  * 具體的方法實現,最終調用的方法所在地
 5  * @author Administrator
 6  *
 7  */
 8 public class HelloImpl implements IHello {
 9 
10     @Override
11     public String sayHello(String name) {
12         String string = "Congratulations! " 
13                 + name + ", you have finished your first WebService!";
14         return string;
15     }
16 
17 }

 6、部署工程到服務器上。可以搜索菜單"Add and Remove Project Deployments..."或者點擊按鈕。

搜索:

或點擊按鈕:

7、在打開的"Project Deployments"菜單里,單擊"Add"。

 

8、在彈出的菜單中選擇"MyEclipse Tomcat",內置的Tomcat,也可以選擇自己的Tomcat位置,不過選擇內置的更不容易出錯。

添加之后的顯示:

9、配置好工程的Tomcat之后,啟動服務

啟動服務成功,會在Console中顯示,此時可以確認以上部署服務過程無誤:

10、設置Tomcat服務器的端口。因為默認是8080端口,往往這個端口是被占用了的,這樣會造成發布WebService不成功。此時需要先修改"Windows-Perferences-MyEclipse-Servers-Integated Sandbox-MyEclipse Tomcat 6"里的Port Number為8089(可自行選擇,不要選擇被占用的)。

如果你是內置額Tomcat,修改這里就行了,如果是自己下載的Tomcat,還需要修改Tomcat目錄下的"conf-server.xml"下的port為8089。

    <Connector port="8089" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

11、部署Tomcat之后,開始在此服務上發布WebService

Strategy選擇下面的一項,可以為工程生成wsdl文件。

 下圖中,1處需要選擇一個實現類,我們這里選擇我們已經寫好的實現類"com.ebony.service.HelloImpl",並勾選2處的"Generate WSDL in project"。

發布之后會在我們的包"com.ebony.service"生成一個類HelloImplDelegate,作為提供給外部調用的類。

還會為工程生成一個wsdl目錄,雙擊打開"HelloImplService.wsdl"文件。

修改紅框內的端口"8080"為"8089",HelloImplPort里的地址,就是我們可以提供給外部調用的WebService地址。

12、在瀏覽器中打開地址"http://localhost:8089/EbonyWS/HelloImplPort",顯示一下內容說明WebService發布成功。

 

第二部分:如何在Java中調用此WebService

1、新建一個EbonyClient的Java Project。

2、導入WebService。

3、在紅框內填入之前的WebService地址,注意要加上"?wsdl",即:

http://localhost:8089/EbonyWS/HelloImplPort?wsdl

導入之后我們會發現,com.ebony.service這個包會導入到了我們的EbonyClient中。

4、新建一個客戶端包:com.ebony.client。

5、新建一個客戶端類:Client.java

 1 package com.ebony.client;
 2 
 3 import com.ebony.service.HelloImplDelegate;
 4 import com.ebony.service.HelloImplService;
 5 
 6 /**
 7  * 調用WebService的客戶端
 8  * @author Administrator
 9  *
10  */
11 public class Client {
12     public static void main(String[] args) {
13         //實例化服務
14         HelloImplService helloImplService = new HelloImplService();
15         //實例化服務委托
16         HelloImplDelegate helloImplDelegate = helloImplService.getHelloImplPort();
17         //使用委托調用服務的方法
18         System.out.println(helloImplDelegate.sayHello("ebony"));
19     }
20 }

至此調用服務的工程開發完成。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM