我們在做系統集成時,經常會需要調用webservice接口,本文將講解在myeclipse中建立一個webservice項目,編寫接口和實現類,並且發布webservice,最后在myeclipse中建立客戶端調用發布的webservice接口,並且對接口進行測試。本文在結束時提供了測試中使用到的所有源代碼。
友情提示,本文使用的工具為myeclipse 8.5。
1、第一步,在myeclipse中建立一個webservice項目。
輸入項目名為WebService,選擇XFire,如下圖所示。
選擇Next,如下圖
再選擇Next,如下圖。
最后點擊Finish,就建立好了一個WebService項目。
2、編寫接口HelloService和接口實現類HelloServiceImpl,代碼如下
package com.service; public interface HelloService { public String hello(); }
package com.service.impl; import com.service.HelloService; public class HelloServiceImpl implements HelloService { public String hello() { return "Hello World..."; } }
3、在WebService項目下的services.xml中配置發布的接口,配置如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>MyService</name> <serviceClass>com.service.HelloService</serviceClass> <implementationClass>com.service.impl.HelloServiceImpl</implementationClass> </service> </beans>
4、將此WebService項目發布到Tomcat中,本人測試使用的是Tomcat 6.0,首先需要將Tomcat 6.0配置到myeclipse,然后通過myeclipse將項目發布到Tomcat中,並且啟動Tomcat,這里省略,啟動后,在IE中輸入訪問地址http://127.0.0.1:9999/WebService/services,進行訪問,其中127.0.0.1為本機IP,9999為Tomcat配置的端口號,WebService為項目發布的名稱,services為web.xml文件中配置的Servlet訪問地址,訪問后如下圖所示。
點擊MyService 右邊的[wsdl],可以看到我們發布的WSDL地址為http://127.0.0.1:9999/WebService/services/MyService?wsdl,至此我們已經實現了建立WebService項目,並且發布一個簡單的WebService接口。
5、在Myeclipse中建立客戶端調用WebService發布的接口,並且進行測試。
5-1、首先在Myeclipse中再建立一個WebService項目,項目名為WebServiceClient,建立過程同上。之后在WebServiceClient中建立客戶端連接我們發布的WebService接口。
5-2、在WebServiceClient中建立客戶端。選中WebServiceClient項目,選擇New下的Other,如下圖所示。
選擇Other后,如下圖。
選擇Web Service Client,點擊[Next],如下圖。
輸入信息如上圖后,點擊[Next],如下圖。
輸入數據如上圖,WSDL URL為我們發布的WSDL地址,這里我們選擇了包com.client作為測試代碼的存放位置,點擊【Next】,如下圖。
在上圖中對WSDL進行校驗,上圖顯示校驗未發現錯誤,點擊【Next】,如下圖。
點擊【Finish】就完成了建立客戶端,並且從我們發布的WebService接口中下載代碼到客戶端上,如下圖
在上圖中,我們可以看到從我們發布的WebService接口中下載的代碼,下面我們將使用MyServiceClient類調用我們發布的WebService接口,對接口進行測試。
5-3、在WebServiceClient項目中打開MyServiceClient類,我們在main方法中添加一行控制台輸出代碼,如下
public static void main(String[] args) { MyServiceClient client = new MyServiceClient(); //create a default service endpoint MyServicePortType service = client.getMyServiceHttpPort(); System.out.println(service.hello());//新添加的測試代碼 //TODO: Add custom client code here // //service.yourServiceOperationHere(); System.out.println("test client completed"); System.exit(0); }
點擊鼠標右鍵,選擇Run as - Java Application,執行main方法,如下圖。
控制台輸出結果為:
由上圖可以看到,我們成功通過客戶端調用了發布的WebService接口中的方法。
service.hello(); hello方法為我們編寫的HelloServiceImpl類中的hello方法。