前言: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 }
至此調用服務的工程開發完成。