信步漫談之Axis2—wsdl2java工具使用


主要介紹 axis2 的 wsdl2java 工具的使用。

Axis2 提供了一個 wsdl2java 命令可以根據 WSDL 文件自動產生調用 WebService 的代碼。wsdl2java 命令可以在 <Axis2安裝目錄> 下的 bin 目錄中找到。在使用 wsdl2java 命令之前需要設置 AXIS2_HOME 環境變量,該變量值是 <Axis2安裝目錄>。以下以 Windows 平台上使用為例。

進入 Windows 控制台,執行如下命令來生成 WebService 的客戶端代碼:

%AXIS2_HOME%\bin\wsdl2java -uri http://127.0.0.1:8080/awyb/services/mySoapService?wsdl -p client -s -o stub

其中 -uri 參數指定了 wsdl 文件的路徑,可以是本地路徑,也可以是網絡路徑。-p 參數指定了生成的 Java 類的包名,-o 參數指定了生成的一系列文件保存的根目錄。在執行完上面的命令后,我們就會發現在當前目錄下多了個stub目錄,在 ./stub/src/client 目錄可以找到對應的客戶端調用文件,這些文件復雜調用 WebService,我們可以在程序中直接使用這些文件。例如:

package client;

import client.MySoapServiceStub.SayHello;
import client.MySoapServiceStub.SayHelloResponse;


public class StubClient {
    public static void main(String[] args) throws Exception {
        MySoapServiceStub stub = new MySoapServiceStub();
        SayHello sayHello = new SayHello();
        SayHelloResponse resp = stub.sayHello(sayHello);
        String ret = resp.get_return();
        System.out.println(ret);
    }
}

以上程序自動生成的客戶端調用文件 MySoapServiceStub.java,我們通過調用該文件實現客戶端訪問,大大簡化了調用 WebService 的步驟,並使代碼更加簡潔。但要注意的是,wsdl2java 命令生成的 Stub 類將 WebService 方法的參數都封裝在了相應的類中,類名為方法名,例如,sayHello 方法的參數都封裝在了 SayHello 類中,要想調用 sayHello 方法,必須先創建 SayHello 類的對象實例。

wsdl2java 參數詳解

命令行格式為:wsdl2java [options] -uri <url or path> : A url or path to a WSDL

其中常用的options具體如下:

-o <path> 指定生成代碼的輸出路徑
-a 生成異步模式的代碼
-s 生成同步模式的代碼
-p <pkg> 指定代碼的package名稱
-l <languange> 使用的語言(Java/C) 默認是java
-t 為代碼生成測試用例
-ss 生成服務端代碼默認不生成
-sd 生成服務描述文件 services.xml,僅與-ss一同使用
-d <databinding> 指定databingding,例如,adb,xmlbean,jibx,jaxme and jaxbri
-g 生成服務端和客戶端的代碼
-pn <port_name> 當WSDL中有多個port時,指定其中一個port
-sn <serv_name> 選擇WSDL中的一個service
-u 展開data-binding的類
-r <path> 為代碼生成指定一個repository
-ssi 為服務端實現代碼生成接口類
-S 為生成的源碼指定存儲路徑
-R 為生成的resources指定存儲路徑
--noBuildXML 輸出中不生成build.xml文件
--noWSDL 在resources目錄中不生成WSDL文件
--noMessageReceiver 不生成MessageReceiver類


免責聲明!

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



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