Java與WCF交互(一)補(bǔ)充:用WSImport生成WSDL的Java客戶端代碼
Posted on 2010-08-29 01:16 邀月 閱讀(6030) 評論(2) 編輯 收藏 所屬分類: Interop在《Java與WCF交互(一):Java客戶端調(diào)用WCF服務(wù)》一 文中,我描述了用axis2的一個Eclipse控件生成WCF的Java客戶端代理類,后來有朋友建議用Xfire、CXF,一直沒有嘗試,今天有朋友 指出JDK6可以用java自帶的一個WSImport工具,試了下,果然很爽,這是一個exe文件,位于%JAVA_HOME%"\bin下,它的官方使 用說明,見:http://download-llnw.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html,主要參數(shù):
Option |
Description |
---|---|
-d <directory> |
Specify where to place generated output files |
-b <path> |
Specify external JAX-WS or JAXB binding files (Each |
-B <jaxbOption> |
Pass this option to JAXB schema compiler |
-catalog |
Specify catalog file to resolve external entity references, it supports TR9401, XCatalog, and OASIS XML Catalog format. Please read the documentation of catalog and see catalog sample. |
-extension |
Allow vendor extensions (functionality not specified by the specification). Use of extensions may result in applications that are not portable or may not interoperate with other implementations |
-help |
Display help |
-httpproxy:<host>:<port> |
Specify an HTTP proxy server (port defaults to 8080) |
-keep |
Keep generated files |
-p |
Specifying a target package via this command-line option, overrides any wsdl and schema binding customization for package name and the default package name algorithm defined in the specification |
-s <directory> |
Specify where to place generated source files |
-verbose |
Output messages about what the compiler is doing |
-version |
Print version information |
-wsdllocation <location> |
@WebServiceClient.wsdlLocation value |
-target |
Generate code as per the given JAX-WS specification version. version 2.0 will generate compliant code for JAX-WS 2.0 spec. |
-quiet |
Suppress wsimport output |
示例:wsimport -s JavaSrc http://stockquote.xyz/quote?wsdl
將在當(dāng)前路徑的JavaSrc下生成相關(guān)的Java類,直接復(fù)制到項(xiàng)目的Src目錄下即可使用。
下面還是以上次創(chuàng)建的http://localhost:8000/HelloTimeService?wsdl為類,測試過程如下:
新建一java Project,如圖:
將上面生成的java文件復(fù)制到Src目錄下,項(xiàng)目結(jié)構(gòu)如圖:
測試代碼也很簡潔:
小結(jié):這種方式與Axis2生成的Stub方式其實(shí)非常類似,只不過沒有生成測試代碼。結(jié)構(gòu)還算清晰。
助人等于自助! 3w@live.cn