Java 工具集教程

wsimport.exe 生成 JAX-WS

wsimport.exe 是 JDK 提供的一个工具,主要用于从 WSDL (Web Services Description Language) 文档生成客户端调用代码(通常是 Java 代码)。这个工具可以处理由任何语言编写的服务器端 WebService,并生成相应的 Java 客户端代码,使得客户端能够通过这些代码来调用 WebService。

命令语法

wsimport [options] <WSDL_URI>

命令选项

其中 [options] 包括:

  • -b <path>  指定 jaxws/jaxb 绑定文件或附加模式(每个 <path> 都必须具有自己的 -b)

  • -B<jaxbOption>  将此选项传递给 JAXB 模式编译器

  • -catalog <file>  指定用于解析外部实体引用的目录文件支持 TR9401, XCatalog 和 OASIS XML 目录格式。

  • -d <directory>  指定放置生成的输出文件的位置

  • -encoding <encoding>  指定源文件所使用的字符编码

  • -extension  允许供应商扩展 - 不按规范指定功能。使用扩展可能会导致应用程序不可移植或无法与其他实现进行互操作

  • -help  显示帮助

  • -httpproxy:<host>:<port>  指定 HTTP 代理服务器 (端口默认为 8080)

  • -keep  保留生成的文件

  • -p <pkg>  指定目标程序包

  • -quiet  隐藏 wsimport 输出

  • -s <directory>  指定放置生成的源文件的位置

  • -target <version>  按给定的 JAXWS 规范版本生成代码默认为 2.2, 接受的值为 2.0, 2.1 和 2.2例如, 2.0 将为 JAXWS 2.0 规范生成兼容的代码

  • -verbose  有关编译器在执行什么操作的输出消息

  • -version  输出版本信息

  • -wsdllocation <location>  @WebServiceClient.wsdlLocation 值

  • -clientjar <jarfile>  创建生成的 Artifact 的 jar 文件以及调用 Web 服务所需的 WSDL 元数据。

  • -generateJWS  生成存根 JWS 实现文件

  • -implDestDir <directory>  指定生成 JWS 实现文件的位置

  • -implServiceName <name>  生成的 JWS 实现的服务名的本地部分

  • -implPortName <name>  生成的 JWS 实现的端口名的本地部分

扩展选项:

  • -XadditionalHeaders  映射标头不绑定到请求或响应消息不绑定到Java 方法参数

  • -Xauthfile  用于传送以下格式的授权信息的文件:http://username:password@example.org/stock?wsdl

  • -Xdebug  输出调试信息

  • -Xno-addressing-databinding  允许 W3C EndpointReferenceType 到 Java 的绑定

  • -Xnocompile  不编译生成的 Java 文件

  • -XdisableAuthenticator  禁用由 JAX-WS RI 使用的验证程序,将忽略 -Xauthfile 选项 (如果设置)

  • -XdisableSSLHostnameVerification  在提取 wsdl 时禁用 SSL 主机名验证

命令示例

假设我们有一个 WSDL 文件的 URL 为 http://example.com/service.wsdl  。

首先,在命令行中切换到包含 wsimport.exe 的 JDK 的 bin 目录(通常在 JDK 的安装目录下)。

然后,运行以下命令来生成客户端代码:

wsimport -keep -s src -d bin http://example.com/service.wsdl

在上述命令中:

  • -keep  选项表示保留生成的源文件。

  • -s src  表示将生成的源文件保存到 src 目录。

  • -d bin  表示将生成的类文件保存到 bin 目录。

执行上述命令后,wsimport.exe 会根据指定的 WSDL 文件生成相应的 Java 客户端代码,并将源文件和类文件分别保存到指定的目录中。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号