Java2WSDL 工具參照

Java2WSDL 工具會將 Java™ 類別對映至 WSDL 文件。

Java2WSDL 工具輸入接受 Java 類別,且會產生代表這個類別的 WSDL 檔來作為輸出。 如果輸出位置有檔案存在,就會改寫它。

Java2WSDL 所產生的 WSDL 文件含有從輸入類別自動衍生的 WSDL 和 XML 綱目建構。 指令行引數允許置換許多這些預設值。

語法

Java2WSDL 工具在 <WS-install-dir>\appserver\bin 目錄中。

Java2WSDL [<arguments>] <class>

引數

強制引數:

<class> - 下列其中一個 Java 類別的完整名稱(包括套件名稱):

Java2WSDL 工具會在 CLASSPATH 中尋找類別。

選用引數:

-help
顯示說明訊息。
-output <WSDLfile>
指出輸出 WSDL 檔的路徑和檔案名稱。如果沒有指定的話,會將預設的 WSDL 檔 <class>.wsdl 寫入現行目錄中。
資料類型
字串。
單位
不適用。
預設值
現行目錄中的 <class>.wsdl。
範圍
系統的合法檔案名稱。
-location <location>
提供服務的位置 (URL)。這個值通常是在部署 Web 服務時自動填入的。如果您要在沒有部署的情況下產生含有位置 URL 的 WSDL 檔,請利用這個引數來指定位置。如果沒有指定位置,就會出現警告來提醒您不應發佈產生的 WSDL 檔,因為最終位置未定。最後一個斜線或反斜線之後的名稱是服務埠的名稱(除非 -servicePortName 引數改寫了名稱)。 指定的值會指派給服務埠位址位置屬性。
資料類型
字串。
單位
不適用。
預設值
file:undefined_location。
範圍
合法 URL 字串。
-portTypeName <name>
指出 portType 元素所用的名稱。如果沒有指定的話,會使用 <class> 名稱。
資料類型
字串。
單位
不適用。
預設值
<class>。
範圍
不適用。
-bindingName
指出連結元素要用的名稱。如果沒有指定的話,連結名稱就是利用 SOAPBinding 來附加的服務元素名稱(-serviceElementName 引數)。
資料類型
字串。
單位
不適用。
預設值
<serviceElementName> <SOAPBinding>。
範圍
不適用。
-serviceElementName <name>
指出服務元素的名稱。
資料類型
字串。
單位
不適用。
預設值
<portTypeName> Service,其中 <portTypeName> 是 -portTypeName 引數所指定的名稱或預設 portTypeName。
範圍
不適用。
-servicePortName <name>
指出服務的名稱。如果未指定的話,會從 -location 引數衍生服務名稱。
資料類型
字串。
單位
不適用。
預設值
-location 引數最後一個反斜線 '\' 之後的名稱,或 <class> 名稱。
範圍
不適用。
-namespace <targetNamespace>
指出產生的 WSDL 文件的目標名稱空間。
資料類型
字串。
單位
不適用。
預設值
對映至名稱空間的 <class> 之套件名稱。
範圍
不適用。
-PkgtoNS <package> <namespace>
指出 Java 套件至名稱空間的對映。 如果發現沒有名稱空間的套件,就會產生適用的名稱空間名稱。您可以重複這個引數來指定多個套件的對映。
  • 套件:
    資料類型
    字串。
    單位
    不適用。
    預設值
    不適用。
    範圍
    Java 套件名稱。
  • 名稱空間:
    資料類型
    字串。
    單位
    不適用。
    預設值
    不適用。
    範圍
    不適用。
-methods <method> [,<method>...]
如果指定了這個引數,只有類別中所指出的方法會匯出在 WSDL 檔中。方法清單必須用逗點分開。 如果沒有指定的話,類別所定義的所有方法都會匯出在 WSDL 檔中。
資料類型
逗號分隔的字串清單。
單位
不適用。
預設值
<class> 所定義的所有方法。
範圍
<class> 或其母項類別所定義的方法。

-all 引數是另一個方式,供您選取要併入的方法。

-all
如果指定了這個引數,Java2WSDL 會查看母項類別,來判斷要匯出至 WSDL 檔的方法清單。如果指定 -all,就不會使用 -methods 引數。-stopClasses 引數指定何時終止方法的向上掃描。
-implClass <impl-class>
Java2WSDL 工具會利用方法參數名稱來建構 WSDL 訊息組件名稱。訊息名稱是從 <class> 內的除錯資訊中取得的。如果編譯這個類別時沒有除錯資訊,或如果它是介面,就無法使用方法參數名稱。在這個情況下,請利用 -implClass 引數來提供要從中取得方法參數名稱的替代類別。如果 <class> 是介面,<impl-class> 就不需要實作 <class>,但它必須實作 <class> 的相同方法。
資料類型
字串。
單位
不適用。
預設值
不適用。
範圍
CLASSPATH 中實作 <class> 之相同方法的 Java 類別。
-stopClasses <parent> [,<parent>...]
Java2WSDL 會搜尋繼承的類別和介面來建構 WSDL 作業的方法清單(如果指定 -all 引數的話)。 當產生匯出的 complexTypes 時,Java2WSDL 會搜尋繼承的類別和介面。每當在開頭是 Java 或 Javax 的套件內找到類別或介面時,搜尋都會停止。 您也可以利用 -stopClasses 引數來定義會使搜尋停止的其他類別。
資料類型
逗點分開的字串清單。
單位
不適用。
預設值
預設的 stopClasses 是 java.* 和 javax.*
範圍
<class> 的母類別。
-style RPC | DOCUMENT | WRAPPED
指定產生的 WSDL 要用的 WSDL 樣式。這個引數搭配 -use 引數來使用。
  • 如果您設定 -use ENCODED 來指定 RPC,或略過 -use,就會產生 style=rpc/use=encoded WSDL。
  • 如果您設定 -use LITERAL 來指定 RPC,就會產生 style=rpc/use=literal
  • 如果您設定 -use LITERAL 來指定 DOCUMENT,或略過 -use,就會產生 style=document/use=literal WSDL。
  • 如果您指定設定了 -use LITERALWRAPPED,或略過 -use,就會產生含 "wrapped" 格式的 style=document/use=literal WSDL。

WRAPPED 格式代表:

  • 產生要求和回應的 complexType。
  • 要求的 complexType 與 operation.request 同名,且含有各輸入參數的元素。
  • 回應的 complexType 是作業的名稱 + "Response",且含有每個輸出的元素。
  • 要求訊息參照含有名稱為 "body" 的單一組件之要求 complexType。
資料類型
字串。
單位
不適用。
預設值
RPC。
範圍
RPC、DOCUMENT 或 WRAPPED。
-use LITERAL | ENCODED
-style 引數共同決定了要在 WSDL、RPC/Enc、RPC/Lit、Doc/Lit 或 Doc-wrapped/Lit 中產生 style 和 use 四種組合中的哪一種。 如果需要詳細資訊,請參閱 WSDL 連結區段。
資料類型
字串。
單位
不適用。
預設值
如果 style 是 RPC,就是 ENCODED;否則是 LITERAL。
範圍
ENCODED 或 LITERAL.
--outputWsdlMode <mode>
產生 WSDL 服務介面文件或 WSDL 服務實作文件,它會隨著 <mode> 值(分別是 InterfaceImplementation)而不同。 附註:引數前面必須有兩個連字號,否則,它就與 -output 引數沒有分別。

疑難排解

Java2WSDL 所產生的 WSDL 可能含有非預期的元素。請檢視 JAX-RPC 規格,以取得所執行之轉換的詳細資訊。

您也可以建立一些 WSDL 文件,讓它們在利用 WSDL2Java 工具以 Java 重新產生時,建立不可編譯的輸出。 這是因為從 Java 至 WSDL 的 JAX-RPC 對映是不可回復的。如果您發現這個問題,請檢查 WSDL 檔,依照需要來修改它,以取得所需要的結果。

使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.