首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JDK 6 內建輕量級 Web Service 實戰:從發布到客戶端調用完整教學

     編輯:Java 相關知識

JDK 6 內建輕量級 Web Service 伺服器,無需額外安裝 Axis 等第三方框架即可快速開發部署。本文記錄使用 NetBeans 6 建立最簡單 Java Web Service 的完整流程。

伺服端實作

package WebServices;
import javax.jws.*;
import javax.xml.ws.Endpoint;

@WebService(targetNamespace = "https://www.blogjava.net/JAVA-HE", serviceName = "HelloService")
public class WSProvider {
  @WebMethod(action = "sayHi", operationName = "sayHi")
  public String sayHi(@WebParam(name = "MyName") String name) {
    return "Hi, " + name;
  }

  @Oneway
  @WebMethod(action = "printSystemTime", operationName = "printSystemTime")
  public void printTime() {
    System.out.println(System.currentTimeMillis());
  }

  public static void main(String[] args) {
    Thread wsPublisher = new Thread(new WSPublisher());
    wsPublisher.start();
  }

  private static class WSPublisher implements Runnable {
    public void run() {
      // 需先執行 wsgen 產生支援類別
      // wsgen -cp . WebServices.WSProvider
      Endpoint.publish("https://localhost:8888/JAVA-HE/WSProvider", new WSProvider());
    }
  }
}

部署步驟

  1. 編譯原始碼。
  2. 進入 classes 目錄,執行 wsgen -cp . WebServices.WSProvider 產生支援類別。
  3. 執行 WSProvider.main() 啟動發布執行緒。
  4. 瀏覽器開啟 https://localhost:8888/JAVA-HE/WSProvider?wsdl 驗證 WSDL 產出。

客戶端測試

  1. 在專案右鍵選擇「New > Web Service Client」,輸入 WSDL URL。
  2. IDE 會依命名空間產生對應套件與 7 個輔助類別。
  3. 撰寫測試類別呼叫服務:
package client;
import net.blogjava.java_he.*;

public class Test {
  public static void main(String[] args) {
    HelloService hs = new HelloService();
    WSProvider ws = hs.getWSProviderPort();
    System.out.println(ws.sayHi("hechangmin"));
    ws.printSystemTime();
  }
}

執行輸出:Hi, hechangmin,代表調用成功。

經驗提醒

  • 發布位址最好外部化設定 (可配置)。
  • WSDL 內部會嚴格依指定 URL 存取,若指定 127.0.0.1 則使用本機 IP 可能無法連線。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved