Axis 1.1主要提供了兩個輔助開發的命令行工具,分別是WSDL2Java和Java2WSDL。下面對他們的參考文檔逐一作詳細說明,內容譯自Axis Reference Guide和User Guide。
WSDL2Java 參考
用法:java org.apache.axis.wsdl.WSDL2Java [options] WSDL-file-URI
選項:
-h, --help
打印幫助信息後退出。
-v, --verbose
打印工具運行過程中的更多信息。
-n, --noImports
僅爲命令行輸入的WSDL文檔生成代碼。默認是爲所有WSDL文檔生成文件,包括導入(import)的WSDL文檔。
-O, --timeout
設置超時時間,以秒爲單位。默認是45秒,指定-1禁止此功能。(default is 45, specify -1 to disable)。此時間應該是設置WSDL2Java Stub的超時時間。
-D, --Debug
打印debug 信息,當前爲WSDL2Java的符號表。
-W, --noWrapped
關閉對"wrapped" document/literal風格操作的支持。
-s, --server-side
自動生成web service的server-side綁定代碼:
1. 一個skeleton類,類名爲Skeleton。此類也可能不生成,具體依賴於選項-S, --skeletonDeploy的取值。
2. 一個實現模板類,類名爲Impl。注意,如果此類已經存在,將不再重新生成。此類就是web service的實現類,用戶修改此模板類完成自己的實現。
3. 一個deploy.wsdd文件,用來部署該web service的配置文件。
4. 一個undeploy.wsdd文件,用來解部署該web service的文件。
-S, --skeletonDeploy
在deploy.wsdd中指定是部署骨架(ture)還是部署實現(false)。 若指定爲true,deploy.wsdd中的service子句看來像下面這樣:
...
若爲false的話,應像下面這樣:
...
默認是false。當使用此選項時,選項-s,--server-side也必須同時明確指定。
-N, --NStoPkg =
指定命名空間到包結構的映射關係。默認的包名由WSDL文檔中的命名空間字符串按一定規則生成。典型地,如果命名空間是http://x.y.com或urn:x.y.com的形式,對應的包結構是com.y.x。若不想使用默認的規則,可以用—NstoPkg指定自己的映射。如果需要,此選項可以多次重複使用,每次指定一個唯一的命名空間映射。例如,若WSDL文檔中命名空間是"urn:AddressFetcher2",而想把從命名空間中對象生成的文件都放在samples.addr包中,則可以爲WSDL2Java提供如下選項:
--NStoPkg urn:AddressFetcher2=samples.addr
注意,如果使用短選項標記,“-N”,必須保證在“-N”和命名空間之間沒有空格。
-f, --fileNStoPkg
用來指定NstoPkg映射的屬性文件,默認是NstoPkg.properties。如果WSDL文檔有很多命名空間,在命令行逐一列出很是冗長。爲保存命令行的簡潔,WSDL2Java也可在一個屬性文件中尋找映射。默認此文件名爲NstoPkg.properties,且必須位於沒有包的目錄中,即位於輸出目錄的根目錄中。也可以使用—fileNStoPkg選項來明確指定自定義的文件。
該屬性文件中條目的格式與命令行—NstoPkg選項參數的格式一樣。例如,替代上面提供的命令行選項,在NstoPkg.properties屬性文件中提供同樣的信息:
urn/:AddressFetcher2=samples.addr
(注:屬性文件中的冒號必須使用轉義字符)
如果特定的映射條目同時出現在命令行和屬性文件中,命令行條目優先。
-p, --package
此選項映射WSDL文檔中所有的命名空間到同一個Java包名。此選項將覆蓋所有的命名空間到包的映射,都替換爲用同一個包名。此選項有用,但有危險,使用前必須確認已理解了用後的結果。例如在不同的命名空間中可能有具有同一名字的多個類型。
-o, --output
指定存放生成文件的輸出目錄。
-d, --deployScope
在deploy.wsdd文件中加入"Application", "Request", "Session"範圍(scope)參數。若不指定此選項,則在deploy.wsdd中沒有scope標記出現。Axsi默認的”Request”。
-t, --testCase
生成web service的客戶端Junit測試類。此類可作爲用戶測試時用來填充的模板。
-a, --all
爲所有的元素生成代碼,即使元素未被引用。WSDL2Java默認只爲在WSDL文件中被引用的元素生成代碼。生成代碼的錨點(anchor)是按types、portTypes、bindings、services的順序中在WSDL文檔中最底的元素。舉例來說,若WSDL文件只包含types,則所有列出的types將被生成代碼。但如果WSDL文件包含types和portType,則該portType和所有被該portType引用的types將被生成代碼。其他情況依此類推。
注意,只有在命令行出現的WSDL文檔中的錨點才被搜索,而不是被導入的WSDL文檔中的錨點。
-T, --typeMappingVersion
指定類型映射的版本,1.1或1.2。默認是1.1版本。?
-F, --factory
指定自定義的實現GeneratorFactory 接口的類名,以擴展Java代碼生成器的功能。
-H, --helperGen
爲元數據生成單獨的Helper類。
-U, --user
存取提供的WSDL-URI的用戶名。此用戶名在解析作爲WSDL2Java輸入的WSDL-URL時使用。如果此URI包含一個用戶名,這將覆蓋命令行的設置。一個帶有用戶名和口令的URL的例子是:http://user:password@hostname:port/path/to/service?WSDL
-P, --password
存取提供的WSDL-URI的口令。若該URI已包含口令,將覆蓋命令行的設置。