JAX-RPC 應用程式的 Java2WSDL 指令
Java2WSDL 指令行工具會將 Java™ 類別對映至 Java API for XML-Based RPC (JAX-RPC) 應用程式的 WSDL 檔。
Java2WSDL 指令會遵循 Java API for XML-based Remote Procedure Call (JAX-RPC) 1.1 規格,將 Java 類別對映至「Web 服務說明語言 (WSDL)」檔案。
Java2WSDL 指令接受 Java 類別作為輸入,並產生代表輸入類別的 WSDL 檔。 如果檔案存在於輸出位置,則會改寫該檔案。 Java2WSDL 指令所產生的 WSDL 檔包含自動衍生自輸入類別的 WSDL 和 XML 綱目建構。 您可以使用指令行引數來置換這些預設值。
Java2WSDL 指令與通訊協定無關; 當您執行 Java2WSDL 指令時,您可以在 WSDL 檔中指定同時產生 SOAP 和非 SOAP 通訊協定連結的指令行選項。 對於每一個可以產生的連結, Java2WSDL 指令會有一個連結產生器來產生該連結的 WSDL。
指令行語法和引數
Java2WSDL [argument...] class支援下列指令行引數:
必要引數
- 類別代表下列其中一個 Java 類別的完整名稱:
- 延伸 javax.ejb.EJBObject 類別的 Stateless Session Enterprise JavaBeans (EJB) 遠端介面
- 延伸 java.rmi.Remote 類別的服務端點介面
- Java Bean
重要引數
- -location location
提供服務的已發佈位置或統一資源定址器 (URL)。 如果未提供此資訊,則會發出警告,指出尚未決定最終發佈的位置。 當部署 Web 服務時,通常會置換服務位置。
除非名稱被-servicePortName 引數置換,否則最後一個反斜線之後的名稱是服務埠的名稱。 服務埠位址位置屬性會獲指派指定的值。 可以指定多個端點位址。 只有在需要單一連結類型時,才建議使用 -location 選項。 如果要求多個連結類型,則會使用 -x 旗標,透過指令行傳遞通訊協定連結特定的位置內容。
下列範例說明如何同時產生 SOAP over HTTP 和 SOAP over Java Message Service (JMS) 連結:
請使用 -location 選項,要求透過連結特定內容值來指定端點 URL ,以決定 -location 選項值套用至哪一個埠。java2wsdl -bindingTypes http,jms \ -x http.location=http://your.server.name:9080/StockQuoteService/services/StockQuote \ -x jms.location= \ jms:/queue?destination=jms/MyQueue&connectionFactory=jms/MyCF&targetService=StockQuote - -output wsdl-uri
指出輸出 WSDL 檔的路徑和檔名。 如果未指定,則會將預設 class.wsdl 檔案寫入現行目錄。
- -input wsdl-uri
指定用來建置輸出 WSDL 檔的輸入 WSDL 檔。 來自現有 WSDL 檔的資訊在此選項中指定,並與輸入 Java 類別搭配使用以產生輸出。
- -bindingTypes指定寫入輸出 WSDL 檔的連結類型清單。 Java2WSDL 指令中的每一個連結產生器都支援特定的連結類型。 有效的連結類型值為 http (SOAP over HTTP)、 jms (SOAP over JMS) 及 ejb (本端或遠端 EJB 呼叫)。 例如,下列指令可用來產生 my.pkg.MySEI 服務端點介面及 my.pkg.MyEJBClass 實作類別的 SOAP over HTTP、EJB 連結:
下列指令是使用-bindingTypes 選項來產生 SOAP over HTTP 和 SOAP over JMS 連結的範例:java2wsdl -bindingTypes http,ejb -implClass my.pkg.MyEJBClass my.pkg.MySEIjava2wsdl -bindingTypes http,jms -implClass my.pkg.MyEJBClass my.pkg.MySEI - -style RPC | DOCUMENT
指定要在產生的 WSDL 檔中使用的 WSDL 樣式。 如果要進一步瞭解,請參閱 Java 語言、WSDL 和 XML 之間的對映,以取得 JAX-RPC 應用程式資訊。 這個引數與 -use 引數一起使用。
如果 RPC 與 -use ENCODED 一起指定,則會產生 style=rpc/use=encoded WSDL 檔案。 如果以 -use LITERAL 選項指定 RPC ,則會產生 style=rpc/use=literal WSDL 檔。 如果使用 -use LITERAL 選項指定 DOCUMENT ,則會產生 style=document/use=literal WSDL 檔案。
- -use LITERAL | ENCODED
指定當與 -style 引數一起使用時,要在 WSDL 檔中產生哪些樣式和使用組合。 組合為 rpc and encoded、rpc and literal 或 doc and literal。 這項設定適用於所有 SOAP 連結。 如果要進一步瞭解,請參閱 Java 語言、WSDL 和 XML 之間的對映,以取得 JAX-RPC 應用程式資訊。
- -transport http | jms
產生 HTTP (預設值) 或 JMS 的 SOAP 連結。 如果指定 JMS ,則會將字元 jms 附加至 WSDL 檔名,以防止改寫另一個傳輸的現有 WSDL 檔。 傳輸選項只能指定一次。
這個選項已淘汰。 -bindingTypes 選項會取代 -transport 選項,因此您可以產生非 SOAP 專用的連結。
- -portType名稱 名稱
指定要用於 portType 元素的名稱。 如果未指定,則連結名稱是埠類型名稱。
- -bindingName name
指定要用於連結元素的名稱。 如果未指定,則連結名稱是埠類型名稱。
- -serviceElement名稱 名稱
指定服務元素的名稱。
- -servicePort名稱 名稱
指定服務的名稱。 如果未指定,則會從 -location 引數衍生服務名稱。
- -namespace targetNamespace
指出所產生 WSDL 檔的目標名稱空間。 如果要瞭解用來取得預設名稱空間的演算法,請參閱 JAX-RPC 應用程式的 Java 語言、WSDL 和 XML 之間的對映資訊。
- -PkgtoNS 套件名稱空間
指定 Java 套件至名稱空間的對映。 如果套件沒有名稱空間, Java2WSDL 指令會產生名稱空間名稱。 您可以重複-PkgtoNS 引數,以指定多個套件的對映。
- -extraClasses classes
指定 WSDL 檔中所代表的其他類別。
- -implClass impl-class
Java2WSDL 指令使用方法參數名稱來建構 WSDL 檔案訊息組件名稱。 指令會自動從類別中的除錯資訊取得訊息名稱。 如果在沒有除錯資訊的情況下編譯類別,或如果類別是介面,則無法使用方法參數名稱。 在此情況下,您可以使用-implClass 引數來提供替代類別,以從中取得方法參數名稱。 如果類別是介面,則 impl-class 不需要實作類別,但它必須實作與類別相同的方法。
- -verbose
顯示詳細訊息。
- -help
顯示說明訊息。
- -helpX
顯示延伸選項及連結產生器所支援之各種選項的說明訊息。
其他引數
- -wrapped boolean
指定是否根據包裝的規則來產生 WSDL 檔。 如果 use 僅為文字,則此選項有效。 選項預設為 true。
- -stopClasses parent [, parent]
Java2WSDL 指令會搜尋繼承的類別和介面,以建構 WSDL 檔案作業的方法清單 (如果指定 -all 引數的話)。
當產生延伸 complexTypes時, Java2WSDL 指令會搜尋繼承的類別和介面。 在以 java 或 javax開頭的套件內找到類別或介面時,搜尋即會停止。 您可以使用-stopClasses 引數來定義導致搜尋停止的其他類別。
- -methods 引數
指定「服務端點介面」中必須在輸出 WSDL 檔中公開的方法名稱清單。 清單以空格或逗點區隔。
- -soapAction有效的引數為:
- 預設值
根據部署資訊設定 soapAction 欄位。
- 無
將 soapAction 欄位設為雙引號 ("")。
- 作業
將 soapAction 欄位設為作業名稱。
- 預設值
- -outputImpl impl-wsdl
指定您是否要發出介面和實作 WSDL 檔。
- -locationImport location-uri
如果您使用-outputImpl 引數,請指定介面 WSDL 檔的位置。
- -namespaceImpl 名稱空間
如果您使用-outputImpl 引數,請指定實作 WSDL 檔的目標名稱空間。
- -MIMEStyle <風格>
指定「多用途網際網路郵件延伸 (MIME)」類型,用來對映至連結元素的「Web 服務-交互作業能力 (WS-I) SOAP (含附件參照)」(wsi:swaRef)。
<風格> can be one of the following:- WSDL11 (預設值): 使用 WSDL 1.1 標準來排除對映 MIME 類型。 如果 MIME 類型無法對映至 WSDL 1.1 標準,指令會失敗。
- AXIS: 使用 AXIS 標準對映 MIME 類型,例如影像變成 axis:image。
- swaRef: 使用 WSDL 1.1 標準來對映 MIME 類型,但有兩個警告:
- DataHandler 對映至 wsi:swaRef 元素,而不是 application 和 octet-stream
- 如果透過 WSDL 1.1對映無效,請對映至 wsi:swaRef 元素
- -propertiesFile 引數使用內容檔而非指令行來設定現有選項,例如-extraClasses。 下列範例說明此引數的用法:
extraClasses=com.ibm.Class1, com.sun.Class2,org.apache.Class3 - -voidReturn有效的引數為:
- ONEWAY
具有 void 傳回的方法是單向。 這個引數是 JMS 傳輸的預設值。
- TWOWY
具有 void returns 的方法是雙向。 這個引數是 HTTP 傳輸的預設值。
- ONEWAY
- -debug
顯示除錯訊息。
- -property 或 -x您可以使用 -x 選項,將指令行選項傳遞至各種連結產生器。 在指令行上多次使用 -x 選項來指定一組內容值,以傳遞給 Java2WSDL 指令所呼叫的每一個連結產生器方法。 您也可以使用單一 -x 選項來指定多個內容,以逗點區隔它們,例如:
相當於:java2wsdl -x prop1=value1 -x prop2=value2
必要的話, -x 選項可讓您彈性個別指定每一個連結產生者的每一個指令行選項。 -x 選項中指定的值會置換對等指令行選項中指定的值 (如果兩者都指定的話)。java2wsdl -x prop1=value1,prop2=value2