Java開發WebService(使用Java-WS)

前言:html

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

最後使用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。tomcat

如下開始講解如何在MyEclipse中開發一個WebService。服務器

 

內容:ide

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

一、新建一個Web Service Projectspa

二、個人工程名是「EbonyWS」,WebService Framework選擇JAX-WS。.net

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

四、先定義一個服務須要具備的方法的接口。新建一個接口: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 }

五、定義此接口的一個實現類,實現類裏的方法能夠理解成最終調用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 }

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

搜索:

或點擊按鈕:

七、在打開的"Project Deployments"菜單裏,單擊"Add"。

 

八、在彈出的菜單中選擇"MyEclipse Tomcat",內置的Tomcat,也能夠選擇本身的Tomcat位置,不過選擇內置的更不容易出錯。

添加以後的顯示:

九、配置好工程的Tomcat以後,啓動服務

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

十、設置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" />

十一、部署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地址。

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

 

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

一、新建一個EbonyClient的Java Project。

二、導入WebService。

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

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

導入以後咱們會發現,com.ebony.service這個包會導入到了咱們的EbonyClient中。

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

五、新建一個客戶端類: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 }

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

相關文章
相關標籤/搜索