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

MyEclipse 8.5 基於 JAX-WS 開發 Web Service 完整實戰:服務端、客戶端、部署、調試全流程

     編輯:Java 相關知識

技術棧

  • MyEclipse 8.5
  • JAX-WS 框架(需 Java EE 5.0 支持)
  • WebLogic 10.3.4 / Tomcat 6.0

一、服務端開發

1. 創建 Web Service Project

File → New → Web Service Project,項目名 myWebSvc,框架選 JAX-WS,J2EE 選 Java EE 5.0

新建WS項目

2. 編寫業務類

package com.myweb.ws;
public class SayHello {
    public String sayHaha(String request) {
        return "Haha, " + request + ", O.K. !";
    }
}

新建Java類

3. 生成 Web Service

File → New → Other → MyEclipse → Web Services → Web Service

  • Strategy: Create web service from java class (Bottom-up)
  • Java class: com.myweb.ws.SayHello
  • 勾選 Generate WSDL in project

自動生成:

  • 代理類 SayHelloDelegation
  • WSDL 文件:WebRoot/WEB-INF/wsdl/SayHelloService.wsdl 及 Schema

WS向導1

WS向導2

WS向導3

二、部署與驗證

WebLogic 部署

  1. Servers 視圖 → WebLogic 10.x 右鍵 → Add Deployment → 選項目
  2. 重啟服務器
  3. 瀏覽器訪問:https://localhost:7001/myWebSvc/SayHelloPort 或 https://localhost:7001/WebRoot/SayHelloPort

部署到WebLogic

關鍵坑點:JAX-WS 库衝突

WebLogic 自帶 JAX-WS 實現,項目中若包含 webservices-rt.jar 等庫會報 WSP_1014_POLICY_REFERENCE_DOES_NOT_EXIST 錯誤。解決:刪除項目中的 JAX-WS 2.1 Runtime/API 库。

Tomcat 部署差異

Tomcat 無內置 JAX-WS,**必須**添加 JAX-WS API / Runtime 兩個庫,否則報 ClassNotFoundException: WSServletContextListener。

三、客戶端開發

1. 創建 Java Project

名為 UseWS

客戶端項目

2. 生成客戶端代碼

New → Web Service Client → WSDL 文件選服務端生成的 SayHelloService.wsdl

WS Client向導1

WS Client向導2

WS Client向導3

3. 編寫測試類

import com.myweb.ws.SayHelloDelegate;
import com.myweb.ws.SayHelloService;

public class Test {
    public static void main(String[] args) {
        SayHelloService svc = new SayHelloService();
        SayHelloDelegate delegate = svc.getSayHelloPort();
        String response = delegate.sayHaha("World");
        System.out.println(response); // Haha, World, O.K. !
    }
}

測試類

4. 端口號修復(關鍵)

生成的 WSDL 中 soap:address location 默認 8080,WebLogic 用 7001。需手動修改 WSDL:

<soap:address location="https://localhost:7001/myWebSvc/SayHelloPort"/>

跨機器測試時將 localhost 改為服務器 IP。

總結

JAX-WS Bottom-up 開發流程標準化程度高,核心注意點:容器自帶庫與項目庫衝突處理、WSDL 端口與實際部署一致性。WebLogic 部署需移除項目庫,Tomcat 需添加項目庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved