为了账号安全,请及时绑定邮箱和手机立即绑定

用WSImport生成WSDL的Java客户端代码

标签:
Java

在《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为类,测试过程如下:
https://img1.sycdn.imooc.com//5ad98f3b000134d106680274.jpg

https://img1.sycdn.imooc.com//5ad98f430001648b05890233.jpg

新建一java Project,如图:
https://img1.sycdn.imooc.com//5ad98f4a0001b9b105650651.jpg

将上面生成的java文件复制到Src目录下,项目结构如图:
https://img1.sycdn.imooc.com//5ad98f520001750404750641.jpg

测试代码也很简洁:

https://img1.sycdn.imooc.com//5ad98f590001a07f07180594.jpg

小结:这种方式与Axis2生成的Stub方式其实非常类似,只不过没有生成测试代码。结构还算清晰。

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消