最近因為工作原因接觸到webService,所以記錄下開發中碰到的問題,方便自己以后復習,順便發揚一下開源精神。剛剛接觸webServie如果有什么錯誤歡迎大家指正。
本地環境:myEclipse10.6 tomcat7 JDK7 jaxws-ri-2.2.10
第一步:創建一個基於JAX-WS的webService工程
如果原先擁有正式項目也可以直接使用原有項目實現webService接口

第二步:引用庫
引用myEclipse libray中的JAX-WS 2.1 Runtime Libraries(Project Metro 1.1)和JAX-WS 2.1 APILibraries

不知道為什么有些myEclipse中卻無法找到這兩個庫,其中就包括我。
解決辦法:下載jaxws-ri,將lib目錄下的jar包全部復制到項目中lib目錄下。
下載地址:https://jax-ws.java.net/
第三步:創建測試接口
package com.demo.webservice; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public class Test { //處理方法數量名稱任意 @WebMethod public String test1(String str){ return "測試1接收參數:" + str; } }
第四步:在WEB-INF目錄下創建sun-jaxws.xml文件
<?xml version = "1.0"?> <endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"> <!-- webService接口配置參數 name名稱 implementation實現接口的類 url請求此接口的地址 --> <endpoint name="test1" implementation="com.webservice.Test" url-pattern="/test1"> </endpoint> </endpoints>
第五步:修改web.xml在web.xml中新增以下配置
<!-- 監聽器 --> <listener> <listener-class> com.sun.xml.ws.transport.http.servlet.WSServletContextListener </listener-class> </listener> <servlet> <servlet-name>test1</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>test1</servlet-name> <url-pattern>/test1</url-pattern><!-- select請求地址 就是在sun-jaxwx.xml配置的url --> </servlet-mapping>
項目結構:

第六步:測試
發布項目到tomcat中,啟動tomcat。
打開瀏覽器輸入地址:http://localhost:8080/webService/test1?wsdl
如果出現下面這種頁面說明webService已經發布成功

第七步:編寫webService客戶端
1.創建新的Web Project項目webServiceClient
2.使用myEclipse工具創建webService客戶端

3.選擇你新建的項目webServiceClient(新項目名稱) 點擊next

4.輸入webService服務端地址,就是剛剛在瀏覽器輸入的地址,點擊next

5.等待一會兒,繼續點擊next

3.編寫測試類
package com.demo.test; import com.demo.webservice.Test; import com.demo.webservice.TestService; public class ClinetTest { public static void main(String[] args) { TestService service = new TestService();//根據接口的名稱改變 Test testPort = service.getTestPort(); String param = "測試1參數-你好!";//請求參數 String result = testPort.test1(param);//請求 System.out.println(result);//打印返回值 } }
結果

項目結構

