Posted on 2010-08-29 01:16
邀月 閱讀(6025)
評論(2) 編輯 收藏 所屬分類:
Interop
在《Java與WCF交互(一):Java客戶端調用WCF服務》一
文中,我描述了用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,主要參數:
Option
|
Description
|
-d <directory>
|
Specify where to place generated output files
|
-b <path>
|
Specify external JAX-WS or JAXB binding files (Each <file> must have its own -b )
|
-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
將在當前路徑的JavaSrc下生成相關的Java類,直接復制到項目的Src目錄下即可使用。
下面還是以上次創建的http://localhost:8000/HelloTimeService?wsdl為類,測試過程如下:


新建一java Project,如圖:

將上面生成的java文件復制到Src目錄下,項目結構如圖:

測試代碼也很簡潔:

小結:這種方式與Axis2生成的Stub方式其實非常類似,只不過沒有生成測試代碼。結構還算清晰。
邀月注:本文版權由邀月和博客園(BlogJava)共同所有,轉載請注明出處。
助人等于自助! 3w@live.cn