MyEclipse 開發WebService介面
查看了網上的各類用Java開發WebService介面的方法,有些麻煩而且行不通,自己實踐後,將實踐過程記錄如下,以備以後之用。
一、服務端釋出WebService介面
1、在Myeclipse中,選擇File->new->Web Service Project,然後輸入專案名稱,框中內容按如下所示選擇即可,然後點選next。
2.點選next後,出現如下畫面:
3、再點選next,勾選兩個框。
4、點選2次next後出現如下介面,勾選所有框
5、點選Finish完成後。在該專案上的Java Build Path,選擇Libraries標籤,點選Add Libirary,在彈出框中,選擇MyEclipse Library,如下圖所示:
6、點選next後,在彈出框中選擇JAX-WS 2.1 Libraries,並點選Finish,檢查Libraries標籤中是否已經新增上了剛新增的Lib
7、 在下面這個頁面上全部勾選:
8、在TestServiceDemo/src目錄下,新建如下圖結構的類:
其中IServiceHello類為介面,ServiceHelloImpl類為實現,具體程式碼如下:
IServiceHello類:
package com.mf5.app.service; public interface IServiceHello { public String sayHello(); public String sayHelloName(String name); }
ServiceHelloImpl類:
package com.mf5.app.serviceimpl; import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import com.mf5.app.service.IServiceHello; @WebService(targetNamespace="http://demo.webservice",name="Hello") @SOAPBinding(style=SOAPBinding.Style.RPC) public class ServiceHelloImpl implements IServiceHello { public final String str = "WebService伺服器返回訊息..."; @WebMethod public String sayHello() { return str+"Hello!"; } @WebMethod public String sayHelloName(String name) { return str+name; } }
9、在WEB-INF目錄下,新建一個檔案,名稱為:sun-jaxws.xm,其中內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
<endpoint name="IServiceHello"
implementation="com.mf5.app.serviceimpl.ServiceHelloImpl"
url-pattern="/testservice">
</endpoint>
</endpoints>
10、在web.xml檔案中,在 <display-name>TestServiceDemo</display-name> 下面新增如下程式碼:注意的是,在sun-jaxws.xm中的url-pattern的值與web.xml中的servlet-mapping中對映的url-pattern的值必須是一樣的。
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>testservice</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>testservice</servlet-name>
<url-pattern>/testservice</url-pattern>
</servlet-mapping>
11、可將TestServiceDemo部署在Myeclipse自帶的Tomcat中,並啟動tomcat伺服器。啟動成功後,訪問: http://localhost:8080/TestServiceDemo/testservice,如果出現如下頁面,則說明WebService部署成功。
點選頁面中的WSDL連線地址,訪問的是該WebService的wsdl檔案內容:
二、在Myeclipse上編寫客戶端,訪問介面
1、同樣新建一個Web Service Project工程,名字為TestClient。
2、開啟cmd命令,進入到專案的src目錄下,輸入以下命令:
wsimport -keep http://localhost:8080/TestServiceDemo/testservice?wsdl
回車後就會將wsdl上的介面資訊生成java類檔案,放在src目錄下。
3、重新整理專案,可看到src目錄下有新檔案生成。
4、編寫DemoTest類,測試是否能呼叫介面。程式碼如下:
package com.mf5.test;
import webservice.demo.Hello;
import webservice.demo.ServiceHelloImplService;
public class DemoTest
{
public static void main(String[] args)
{
//建立一個用於產生WebServiceImpl例項的工廠,WebServiceImplService類是wsimport工具生成的
ServiceHelloImplService factory = new ServiceHelloImplService();
//通過工廠生成一個WebServiceImpl例項,WebServiceImpl是wsimport工具生成的
Hello wsImpl = factory.getHelloPort();
//呼叫WebService的sayHello方法
String resResult = wsImpl.sayHello();
System.out.println("呼叫WebService的sayHello方法返回的結果是:"+resResult);
System.out.println("---------------------------------------------------");
//呼叫WebService的sayHelloName方法
resResult = wsImpl.sayHelloName("孤傲蒼狼");
System.out.println("呼叫WebService的save方法返回的結果是:"+resResult);
}
}
5、執行該DemoTest,檢查console如下結果,為成功訪問介面。