基於JAX-WS的webService開發實例


最近因為工作原因接觸到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);//打印返回值
    }
}

結果

項目結構

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM