用于 JAX-WS 应用程序的 wsgen 命令

当从 Java™ 代码启动时,wsgen 命令行工具将生成 Java API for XML Web Services (JAX-WS) 应用程序所必需的工件。所生成的工件符合 Java 5,从而可以在不同的 Java 版本和平台之间移植这些工件。

使用自底向上的方法来开发 JAX-WS Web Service 并且您从服务端点实现开始进行开发时,可以使用 wsgen 工具生成必需的 JAX-WS 工件。

支持的配置 支持的配置: z/OS® 平台不支持 wsimportwsgenschemagenxjc 命令行工具。随在 z/OS 平台上运行的 WebSphere® Application Server 一起提供的组装工具提供了此功能。请针对 JAX-WS 应用程序查看这些命令行工具,以更多地了解这些工具。sptcfg
最佳实践 最佳实践: WebSphere Application Server 提供 Java API for XML-Based Web Services (JAX-WS) 和 Java XML 绑定体系结构 (JAXB) 工具。wsimportwsgenschemagenxjc 命令行工具位于 WebSphere Application Server(传统)app_server_root\bin\ 目录中。xjcschemagen 命令位于 Liberty 概要文件中的 app_server_root\jaxb\bin\ 目录中。在某些情况下,由 WebSphere Application Server 提供的工具以及 JDK 两者所生成的工件支持相同级别的规范。总之,JDK 工具生成的工件可在其他顺应的运行时环境之间移植。然则,最好是使用本产品附带提供的工具来在 WebSphere Application Server 环境内实现无缝集成并利用可能仅在 WebSphere Application Server 中受支持的功能部件。要利用 JAX-WS 和 JAXB V2.2 工具,请使用应用程序服务器附带提供的工具,这些工具位于 app_server_root\bin\ 目录。bprac
注: 可以对应用程序服务器的 Liberty 和 WebSphere Application Server(传统)使用 wsimportwsgenschemagenxjc 命令行工具。
wsgen 工具接受正确注释的服务端点实现,该实现使用 @WebService 注释作为输入,并且将生成以下工件:
  • 对消息内容进行编组和取消编组所需要的任何其他 Java XML 绑定体系结构 (JAXB) 类。
  • WSDL 文件(如果指定了可选的 -wsdl 自变量)。wsgen 工具并不会自动生成 WSDL 文件。

使用 JAX-WS V2.2 工具时,在 WSDL 文件不再对 java.lang.RuntimeException 和 java.rmi.RemoteException 引用及其子类进行映射。此行为更改符合 JAX-WS V2.1 规范 3.7 节中描述的规范一致性规则。此一致性规则指定,不能将 java.lang.RuntimeException 和 java.rmi.RemoteException 类及其子类视为特定于服务的异常并且不能在 WSDL 文件中对它们进行映射。

除了从命令行使用这些工具外,还可从 WebSphere Application Server(传统)的 Ant 构建环境中调用这些 JAX-WS 工具。从 Ant 构建环境中使用 com.sun.tools.ws.ant.WsGen Ant 任务可以调用 wsgen 工具。为正常运行,此 Ant 任务需要您使用 ws_ant 脚本调用 Ant。

避免故障 避免故障: 当多个 XMLType 注释在不同 Java 包中定义了同一个 @XMLType 名称时,wsgen 命令无法在这些注释之间区分 XML 名称空间。如果出现了这种情况,那么将产生以下错误:
Error: Two classes have the same XML type name ....
Use @XmlType.name and @XmlType.namespace to assign different names to them...
此错误指示您具有同名的类或 @XMLType.name 值,但它们存在于不同的 Java 包中。要防止此错误,请将 @XML.Type.namespace 类添加至现有的 @XMLType 注释以区分 XML 类型。gotcha

使用 JAX-WS 应用程序时,wsgen 命令行工具在完整概要文件中可能找不到共享类文件。可以使用 com.ibm.websphere.webservices.WSDL_Generation_Extra_ClassPath 定制属性来指定这些类文件的位置。有关更多信息,请参阅 Java 虚拟机定制属性的相关文档。

语法

命令行语法为:

[Windows]
app_server_root\bin\wsgen.bat [options] service_implementation_class
[AIX][HP-UX][Linux][Solaris]
app_server_root/bin/wsgen.sh [options] service_implementation_class
[IBM i]
app_server_root/bin/wsgen [options] service_implementation_class

参数

service_implementation_class 名称是需要的唯一参数。对于 wsgen 命令,以下参数是可选参数:

-classpath <path>
指定服务实现类所在的位置。
-cp <path>
指定服务实现类所在的位置。此参数与 -classpath <path> 的功能相同。
-d <directory>
指定用于放置生成的输出文件的位置。
-extension
指定是否启用对不是由 JAX-WS 规范指定的功能进行定制扩展。使用扩展可能会产生不可移植的应用程序或者不与其他实现互操作的应用程序。
-help
显示帮助菜单。
-keep
指定是否保留已生成的源文件。
-r <directory>
此参数仅与 -wsdl 参数配合使用。它指定用于放置生成的 WSDL 文件的位置。
-s <directory>
指定用于放置生成的源文件的目录。
-verbose
指定此选项以输出一些消息来说明编译器正在执行哪些操作。
-version
打印版本信息。如果指定此选项,那么只输出版本信息,而不执行正常的命令处理。
-wsdl [:protocol]
缺省情况下,wsgen 工具不会生成 WSDL 文件。此可选参数将导致 wsgen 生成 WSDL 文件,它通常只用来允许开发者在部署端点之前复审 WSDL 文件。protocol 是可选的,它指定 wsdl:binding 中所使用的协议。protocol 的有效值为 soap 1.1Xsoap 1.2。缺省值为 soap 1.1。值 Xsoap 1.2 不是标准的,并且仅与 -extension 选项配合使用。
-servicename <name>
此参数仅与 -wsdl 选项配合使用。指定要在 WSDL 文件中生成的一个 wsdl:service 名称。For example,
-service name "{http://mynamespace/}MyService"
-portname
此参数仅与 -wsdl 选项配合使用。指定要在 WSDL 文件中生成的一个 wsdl:port 名称。For example,
-portname "{http://mynamespace/}MyPort"

指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_wsgen
文件名:rwbs_wsgen.html