Java2WSDL 工具将 Java™ 类映射至 WSDL 文档。
Java2WSDL 工具接受 Java 类作为输入并产生表示此类的 WSDL
文件作为输出。如果输出位置存在文件,则覆盖该文件。
Java2WSDL 生成的 WSDL 文档包含自动从输入类派生的 WDSL 和 XML 模式构造。命令行自变量允许覆盖许多这些缺省值。
语法
Java2WSDL 工具位于 <WS-install-dir>\appserver\bin 目录中。
Java2WSDL [<arguments>] <class>
自变量
必需自变量:
<class> - 下列其中一个 Java 类的标准名称(包括包名):
- 无状态会话 EJB 远程接口(扩展 javax.ejb.EJBObject)
- 服务端点接口(扩展 java.rmi.Remote)
- Java bean
Java2WSDL 工具定位 CLASSPATH 中的类。
可选自变量:
- -help
- 显示帮助消息。
- -output <WSDLfile>
- 指示输出 WSDL 文件的路径和文件名。如果不指定输出 WSDL 文件,则会将缺省 WSDL 文件 <class>.wsdl 将写到当前目录中。
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- 当前目录中的 <class>.wsdl。
- 范围
- 系统的合法文件名。
- -location <location>
- 提供服务的位置(URL)。此值通常在部署 Web Service 时自动填写。要生成包含位置 URL 的 WSDL 文件而不部署它,使用此自变量指定位置。如果不指定位置,将显示警告以提醒您不应发布生成的 WDSL 文件,因为最终位置尚未确定。在最后一个斜杠或反斜杠后面的名称是服务端口的名称(除非被
-servicePortName 自变量覆盖了)。该服务端口地址位置属性被赋予指定的值。
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- file:undefined_location。
- 范围
- 合法的 URL 字符串。
- -portTypeName <name>
- 指示要用于 portType 元素的名称。如果不指定名称,则使用 <class> 名称。
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- <class>。
- 范围
- 不适用。
- -bindingName
- 指示要用于 binding 元素的名称。如果不指定名称,则 binding 名称就是 service 元素名称(-serviceElementName 自变量)后跟“SOAPBinding”。
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- <serviceElementName> <SOAPBinding>。
- 范围
- 不适用。
- -serviceElementName <name>
- 指示 service 元素的名称。
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- <portTypeName> Service,其中 <portTypeName> 是用 -portTypeName 自变量指定的名称或缺省 portTypeName。
- 范围
- 不适用。
- -servicePortName <name>
- 指示 service 的名称。如果不指定名称,则从 -location 自变量派生 service 名称。
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- 在 -location 自变量的最后一个反斜杠“\”后面的名称或
<class> 名称。
- 范围
- 不适用。
- -namespace <targetNamespace>
- 指示要生成的 WSDL 文档的目标名称空间。
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- 映射至名称空间的 <class> 的包名。
- 范围
- 不适用。
- -PkgtoNS <package> <namespace>
- 指示 Java 包至名称空间的映射。如果发现包没有名称空间,Java2WSDL 将生成合适的名称空间的名称。可重复此自变量以指定多个包的映射。
- 包:
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- 不适用。
- 范围
- Java 包名。
- 名称空间:
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- 不适用。
- 范围
- 不适用。
- -methods <method> [,<method>...]
- 如果指定了此自变量,则只将在类中指示的方法导出到 WSDL 文件中。必须用逗号分隔方法的列表。如果不指定此自变量,则可以将通过类定义的所有方法导出到 WSDL 文件中。
- 数据类型
- 字符串的逗号分隔的列表。
- 单位
- 不适用。
- 缺省值
- 通过 <class> 定义的所有方法。
- 范围
- 通过 <class> 或其父类定义的方法。
-all 自变量是选择要包括的方法的另一种方法。
- -all
- 如果指定了此自变量,则 Java2WSDL 浏览父类以确定要导出到 WSDL 文件中的方法的列表。如果指定了 -all,则不使用 -methods 自变量。-stopClasses 自变量指定何时终止对方法的向上扫描。
- -implClass <impl-class>
- Java2WSDL 工具使用方法参数名来构造 WSDL 消息部件名称。消息名称是从 <class> 中的调试信息获取的。如果不使用调试信息编译此类,或者如果此类是一个接口,则方法参数名不可用。在这种情况下,使用
-implClass 自变量来提供从中获取方法参数名的备用类。如果 <class> 是一个接口,则 <impl-class> 不必实现 <class> , 但它必须实现 <class> 所实现的方法。
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- 不适用。
- 范围
- CLASSPATH 中实现 <class> 所实现的方法的 Java 类。
- -stopClasses <parent> [,<parent>...]
- Java2WSDL 搜索继承的类和接口以构造 WSDL 操作的方法列表(如果指定了 -all 自变量的话)。当生成扩展的 complexTypes 时,Java2WSDL 搜索继承的类和接口。每当找到位于以 Java 或 Javax 开头的包中的类或接口时,搜索就会停止。也可以使用 -stopClasses 自变量来定义将使搜索停止的附加类。
- 数据类型
- 用逗号分隔的字符串列表。
- 单位
- 不适用。
- 缺省值
- 缺省 stopClasse 是 java.* 和 javax.*
- 范围
- <class> 的父类。
- -style RPC | DOCUMENT |
WRAPPED
- 指定要在所生成的 WSDL 中使用的 WSDL 样式。此自变量与 -use 自变量配合使用。
- 如果将 -use ENCODED 与 RPC 一起指定,或者省略
-use,则生成 style=rpc/use=encoded WSDL。
- 如果将 -use LITERAL 与 RPC 一起指定,则生成
style=rpc/use=literal WSDL。
- 如果将 DOCUMENT 与 -use LITERAL 一起指定,或者省略
-use,则生成 style=document/use=literal WSDL。
- 如果将 WRAPPED 与 -use LITERAL 一起指定,或者省略 -use,则生成具有“wrapped”格式的 style=document/use=literal WSDL。
WRAPPED 格式表示:
- 为请求和响应生成 complexType。
- 请求的 complexType 与 operation.request 同名,并且包含每个输入参数的元素。
- 响应的 complexType 是操作的名称 +“Response”,它包含每个输出的元素。
- 请求消息用一个称为“body”的部件来引用请求 complexType。
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- RPC。
- 范围
- RPC、DOCUMENT 或 WRAPPED。
- -use LITERAL | ENCODED
- 与 -style 自变量一起确定下列样式和用法的四种组合中的哪一种生成为 WSDL:RPC/Enc、RPC/Lit、Doc/Lit 或 Doc-wrapped/Lit。有关更多信息,请参阅 WSDL 绑定部分。
- 数据类型
- 字符串。
- 单位
- 不适用。
- 缺省值
- 如果样式是 RPC,则是 ENCODED,否则是 LITERAL。
- 范围
- ENCODED 或 LITERAL。
- --outputWsdlMode <mode>
- 生成 WSDL 服务接口文档或 WSDL 服务实现文档,这取决于 <mode> 的值,在上述两种情况下该值必须分别为接口或实现。注意:此自变量必须前置两个连字符,否则不能区分它与
-output 自变量。
故障诊断
Java2WSDL 生成 WSDL 可能包括意外的元素。有关执行的转换的更多信息,查看 JAX-RPC 规范。
还可以创建这样的 WSDL 文档:当使用 WSDL2 工具重新生成到 Java 中时会创建不能编译的输出。这是因为从 Java 至 WSDL 的 JAX-RPC 映射是不可逆的。如果遇到此问题,检查 WSDL 文件并根据需要修改它以获得期望的结果。