技術交流

提升專案效率都靠它,教你如何正確建置 Web Service

Jil Jil

資通電腦擁有精深的系統建置與整合技術,以及豐富的大型專案輔導經驗,能協助政府單位進行專案事前規劃、專業系統建置、資料移轉、效能校調與原始碼檢測……等服務。在執行網站專案開發時,通常都需先建置 web Service,工程師透過這樣的軟體服務元件,就能夠輕易的將不同平台之間的服務串接起來,加速系統建置效率。

建立新專案

  • 建立一個新的 Dynamic Web Project
  • 設定專案名稱後點擊 Finish
    此範例專案名稱為 webServiceServer
  • 建立一個新的 class
    此範例建立 package 為 com.ares.tech.webServiceMethod,name 為 constant 的 Java 程式,利用這支程式取得專案的常數。

以 Java 為範例,撰寫 Web Service Server 端的 method

在 constant 程式裡建立 2 個 method,一個為 getWsString(),另一個為 getWsString(String arg)

呼叫 getWsString() 會回傳WEBSERVICE歡迎你!;呼叫 getWsString(String arg) 則會回傳Hello~ WEBSERVICE歡迎你!

建立 Web Service Server

  • 選擇需要發佈 method 的 Java 檔
    此範例為發佈 constant.java 裡的兩個method,constant.java 點右鍵 → Web Services → Create Web Service
  • 點擊 Next
  • 點擊 OK
  • 選取要發佈的 method 後,點擊 Next
  • 點擊 Start server
  • 當 Server 啟動後,點擊 Next
  • 此處不勾選,點擊 Finish

測試 Web Service

打開瀏覽器,依此範例輸入 http://localhost:8080/webServiceServer/services,當畫面出現 method 內容,代表 Web Service 佈署成功。

設定權限控管機制

  • 在 tomcat-users.xml 設定權限
  • 在 tomcat 的 web.xml 增加下列程式,設定權限控管

建立 Web Service Client

  • 建立一個新的 Dynamic Web Project
  • 設定專案名稱後點擊 Finish,此範例專案名稱為 webServiceClient
  • 利用 WSDL 來建立 Web Service Client
    對著要使用 Web Service Client 的專案上點擊右鍵 → New → Other。此範例專案為 webServiceClient
  • 選擇 Web Service Client 後點擊 Next
  • 將 WSDL 的路徑輸入到 service definition欄位,點擊 Next
    此範例為輸入 http://localhost:8080/webServiceServer/services/constant?wsdl
  • 確認 Output folder 所指的位置是否與 Web Service Code 相同,點擊 Finish
  • 在 webServiceClient 的 src 目錄下會出現 java 檔,及 WebContent → WEB-INF → lib 目錄下會載入 jar 檔

有設定權限控管機制時,需有帳號密碼才可使用

  • 當 Web Service 有設定權限控管機制時,會要求 Client 端需要帳號密碼才可使用 method。
  • 以 Constant.java 的 getWsString() 及 getWsString2(java.lang.String arg) 為範例修改 ConstantSoapBindingStub.java 裡的 getWsString() 及getWsString2(java.lang.String arg),在這兩個 method 加上: _call.setProperty(org.apache.axis.client.Call.USERNAME_PROPERTY, "ACCOUNT"); _call.setProperty(org.apache.axis.client.Call.PASSWORD_PROPERTY, "PASSWORD");

使用 Web Service 提供的 method

  • 建立一個新的 class 作為呼叫 Web Service 的 method 使用
    此範例建立 package 為 com.ares.tech.webServiceClient,name 為 useWebServiceAction
  • 撰寫呼叫 Web Service 提供的 method 的程式
  • 新增測試用的 index.jsp,點擊 button 後執行 useWebServiceAction,將回傳值顯示於畫面上
  • 更改 web-xml,加入 Servlet 設定

執行 Web Service

打開瀏覽器,此範例輸入 http://localhost:8080/webServiceClient/testWsServlet,當畫面出現 method 內容,代表 Web Service 執行成功。