用於 JAX-RPC 應用程式的 WSDL2Java 指令
針對 WSDL 檔執行 WSDL2Java 指令行工具,以建立 Java™ API 和部署描述子範本。
Web 服務說明語言 (WSDL) 檔說明 Web 服務。 Java API for XML-based Remote Procedure Call (JAX-RPC) 1.1 規格定義與 Web 服務互動的 Java API 對映。 Web Services for Java Platform, Enterprise Edition (Java EE) 規格定義在 Java EE 環境中部署 Web 服務的部署描述子。 WSDL2Java 指令是針對 WSDL 檔執行,以根據這些規格來建立 Java API 和部署描述子範本。
targetNamespace="MyRelNamespace". 您可以透過新增通訊協定及基本 URI 資訊,將此範例中的相對名稱空間變更為絕對名稱空間:targetNamespace="http://www.sample.com/MyRelNamespace"指令行語法
WSDL2Java [arguments] WSDL-URI必要引數
- WSDL-URI
使用通用資源識別碼 (URI) 指定輸入 WSDL 檔的位置。 如果 WSDL 檔位於本端檔案系統,您也可以使用一般檔案路徑。
重要引數
- -role Java EE 角色指定 Java EE 開發角色,以識別要產生哪些檔案。 有效的引數包括:
- 用戶端
develop-client 和 deploy-client 引數的組合。
- deploy-client
產生用於用戶端部署的連結檔。
- deploy-server
產生用於伺服器部署的連結檔。
- develop-client(預設值)
產生用於用戶端開發的檔案。
- develop-server
產生用於伺服器開發的檔案。
- 伺服器
develop-server 和 deploy-server 引數的組合。
- 用戶端
- -container Java EE-container指出要使用的 Java EE 儲存器。 有效的引數包括:對於用戶端角色(請參閱 -role 選項),預設參數為 none。 對於伺服器角色,儲存器必須是 ejb 或 web。 開發和部署必須使用相同的儲存器選項。
- 用戶端
指出用戶端儲存器。
- ejb
指示 Enterprise JavaBeans (EJB) 儲存器。
- 無
指出沒有儲存器。
- Web
指出 Web 儲存器。
- 用戶端
- -output 目錄
為產生的檔案設定根目錄。
- -inputMappingFile 對映檔
指定 Web Services for Java EE 對映檔的檔名。
- -introspect
搭配使用現有的 Java Bean 與新的 Web 服務 API。
在某些實務中,最好使用現有的 Java 類別,而不是產生新的類別。 -introspect 選項會指示 WSDL2Java 指令在產生類別時檢查現有的 Java 類別。 將會根據 JAX-RPC 規格來驗證現有的類別。 例如:
假設您有現有的 Java Bean
WSDL 檔將 x 定義為public class Bean { public Date x; }xsd:dateTime。 如果沒有 -introspect 選項, WSDL2Java 指令會產生類似下列範例的 Java Bean:
WSDL2Java 指令使用 -introspect 選項來檢查原始 Java Bean ,以及產生與現有 Java Bean 相容的類別。public class Bean { private Calendar x; public void setx(Calendar value) (x=value;) public Calendar getX() { return x;) } - -classpath 路徑
定義搜尋 Java 類別的替代類別路徑。
- -noDataBinding
停用 XML 類型與 Java 類型的連結。 相反地,每一個 XML 類型都會對映至 SOAP with Attachments API for Java (SAAJ) 規格所定義的
javax.xml.soap.SOAPElement介面。Java API for XML Web Services (JAX-WS) 程式設計模型支援 SAAJ 1.2 和 1.3。
JAX-RPC 程式設計模型支援 SAAJ 1.2。
Java 程式設計模型定義 XML 類型子集的 Java 對映。 數個 XML 類型無法對映至 Java Bean 或基本元素。 在此情況下,WSDL2Java 指令會將類型對映到 SAAJ
SOAPElement。 SAAJ SOAPElement 是訊息中元素的通用表示法。SOAPElement的方法可用來檢查元素及其子元素。在某些情況下,完全只使用通用
SOAPElement對映可能更合適。 如果要進一步瞭解SOAPElement的用法,請參閱 SOAP with Attachments API for Java 介面和 JAX-RPC 應用程式的自訂資料連結程式的相關資訊。如需支援的標準和規格的完整清單,請參閱 Web 服務規格與 API 說明文件。
- -help
顯示說明訊息並結束。
- -helpX
顯示延伸選項的說明訊息。 選項包括:
- -verbose
顯示處理資訊,所產生檔案的名稱也包括在內。
- -NStoPkg namespace=package
依預設會自動從 WSDL 檔中的名稱空間字串衍生套件名稱。 比方說,如果名稱空間是 http://x.y.com 或 urn:x.y.com 形式,則對應的套件為 com.y.x。
您可以使用 -NStoPkg 引數提供您自己的對映,對於每個唯一的名稱空間對映,可依需要重複這樣使用。 比方說,如果 WSDL 檔中的名稱空間稱為
urn:AddressFetcher2,而您希望從這個名稱空間中的物件所產生的檔案放在 samples.addr 套件中,請在 WSDL2Java 指令上提供 -NStoPkg "http://urn:AddressFetcher2/"=samples.addr 引數。 - -timeout 秒數
指定 WSDL2Java 指令等待 WSDL-URI 回應時,經過多久之後放棄(秒)。 預設值為 45 秒;-1 停用逾時。
- -genResolver
產生絕對匯入解析器類別。 這個類別用於記錄 WSDL URI 所使用的匯入的 WSDL 檔的內容。 此類別由執行時期使用,也可用於後續執行的 WSDL2Java 指令。 當匯入的 WSDL 檔在遠端而可能無法存取時,這種靈活性就能發揮作用。 使用匯入解析器時,就不可能發生 WSDL 檔的內容在執行時期和開發期間不一致的情況。 產生的類別稱為
_AbsoluteImportResolver.java。 編譯並包裝此類別與 WSDL2Java 指令所產生的其他 Java 類別。 - -useResolver 解析器類別
指定剖析期間使用的絕對匯入解析器類別。 在前一次使用 -genResolver 選項執行 WSDL2Java 指令期間必須建立這個類別。 此類別必須存在 CLASSPATH 變數中。
- -deployScope 引數指出如何部署伺服器實作。 有效的引數包括:
- 應用程式
對所有要求使用一個實作類別實例。
- 要求
對每一個要求建立新的實作類別實例。
- 階段作業
對每一個階段作業建立新的實作類別實例。
- 應用程式
其他引數
- -user id
指定用來存取 WSDL URI 的登入使用者名稱。
- -password 密碼
指定用來存取 WSDL URI 的登入使用者密碼。
- -all
產生所有類型的 Java 檔案,即使未參照的類型也一樣。
- -allowRelativeNamespace true 或 false
指定是否停用相對名稱空間限制。 如果指定 -allowRelativeNamespace=true,相對名稱空間限制會停用。
避免麻煩: 只有在您具有根據相對名稱空間的已建立 WSDL 檔或綱目,且您想要與允許使用相對名稱空間的已定義供應商集交互作業時,才使用此內容。 - -debug
列印除錯資訊。
- -genJava 引數產生 Java 檔案。 有效的引數包括:
- IfNotExists(預設值)
- Overwrite
- 否
- -javaSearch 引數-javaSearch 選項與 -genJava 選項一起使用。 如果 -genJava IfNotExists,請使用 -javaSearch 選項來決定如何偵測檔案是否存在。
- File(預設值):在輸出目錄中尋找檔案
- Classpath:在 CLASSPATH 變數中尋找類別
- Both:在輸出目錄中或在 CLASSPATH 變數中的類別中尋找檔案
- -genXML 引數產生 .xml 和 .xmi 檔。 有效的引數為:
- IfNotExists(預設值)
- Overwrite
- 否
- -genImplSer true 或 false
指出每一個產生的 Java Bean 都實作 java.io.Serializable。 預設值為 false。
- -genEquals true 或 false
指出每一個產生的 Java Bean 都有 equals 和 hashCode 方法。 預設值是 false。
- -noWrappedOperations
停用偵測包裝的作業。 會產生要求和回應訊息的 Java Bean。
- -noWrappedArrays
停用偵測包裝的陣列。
- -fileNStoPkg 檔名
指定名稱空間到套件的對映檔。 預設值為 NStoPKG.properties。
- service wsdl 服務名稱
僅為已安裝的 WSDL 服務產生檔案。
- -testCase
產生 JUnit 測試案例的範本來測試 Web 服務。 JUnit 是撰寫重複性測試的簡易架構。