用于 JAX-RPC 应用程序的 WSDL2Java 命令
针对 WSDL 文件运行 WSDL2Java 命令行工具以创建 Java™ API 和部署描述符模板。
Web 服务描述语言 (WSDL) 文件描述 Web Service。 Java API for XML-based Remote Procedure Call (JAX-RPC) 1.1 规范定义与 Web Service 交互的 Java API 映射。 Web Services for Java Platform, Enterprise Edition (Java EE) 规范定义用于在 Java EE 环境中部署 Web Service 的部署描述符。 WSDL2Java 命令针对 WSDL 文件运行,以根据这些规范创建 Java API 和部署描述符模板。
targetNamespace="MyRelNamespace"。您可以通过添加协议和基本 URI 信息,将此示例中的相对名称空间更改为绝对名称空间:targetNamespace="http://www.sample.com/MyRelNamespace"命令行语法
WSDL2Java [arguments] WSDL-URI必需自变量
- WSDL-URI
- 使用统一资源标识 (URI) 指定输入 WSDL 文件的位置。 如果 WSDL 文件在本地文件系统上,您也可以使用常规文件路径。
重要参数
- -role Java EE 角色
- 指定用于标识要生成哪些文件的 Java EE 开发角色。 有效参数包含:
- 客户机
- develop-client 和 deploy-client 参数的组合。
- deploy-client
- 生成用于客户机部署的绑定文件。
- deploy-server
- 生成用于服务器部署的绑定文件。
- develop-client(缺省值)
- 生成用于客户机开发的文件。
- develop-server
- 生成用于服务器开发的文件。
- 服务器
- develop-server 和 deploy-server 参数的组合。
- -container Java EE-container
- 指示要使用的 Java EE 容器。 有效参数包含:
- 客户机
- 指示客户机容器。
- ejb
- 指示 Enterprise JavaBeans (EJB) 容器。
- 无
- 指示没有容器。
- web
- 指示 Web 容器。
- -output 目录
- 设置发出的文件的根目录。
- -inputMappingFile mapping file
- 指定 Web Services for Java EE 映射文件的文件名。
- -introspect
- 将现有 Java Bean 与新的 Web Service API 配合使用。
在某些场景中,最好使用现有 Java 类,而不是生成新类。 -introspect 选项指示 WSDL2Java 命令在生成类时检查现有 Java 类。 按照 JAX-RPC 规范验证现有的类。 例如:
假设您有一个现有的 Java Bean
WSDL 文件将 x 定义为public class Bean { public Date x; }xsd:dateTime。 如果没有 -introspect 选项,那么 WSDL2Java 命令将生成类似于以下示例的 Java Bean:
WSDL2Java 命令使用 -introspect 选项来检查原始 Java Bean 并生成与现有 Java Bean 兼容的类。public class Bean { private Calendar x; public void setx(Calendar value) (x=value;) public Calendar getX() { return x;) } - -classpath path
- 定义用于搜索 Java 类的备用类路径。
- -noDataBinding
- 禁用 XML 类型与 Java 类型的绑定。 而是将每个 XML 类型映射到由 SOAP with Attachments API for Java (SAAJ) 规范定义的
javax.xml.soap.SOAPElement接口。Java API for XML Web Services (JAX-WS) 编程模型支持 SAAJ 1.2 和 1.3。
JAX-RPC 编程模型支持 SAAJ 1.2。
Java 编程模型定义 XML 类型子集的 Java 映射。 无法将多种 XML 类型映射到 Java Bean 或原语。 在这种情况下,WSDL2Java 命令将类型映射到 SAAJ
SOAPElement。 SAAJ SOAPElement 是消息中元素的一般表示。SOAPElement上的方法可以用于检查元素及其子元素。在某些方案中,仅使用通用
SOAPElement映射可能更合适。 要了解有关使用SOAPElement的更多信息,请参阅有关 JAX-RPC 应用程序的 SOAP with Attachments API for Java 接口和定制数据绑定程序的信息。 - -help
- 显示帮助消息并退出。
- -helpX
- 显示扩展选项的帮助消息。 这些选项包括:
- -verbose
- 显示处理信息,包含生成的文件的名称。
- -NStoPkgnamespace=package
- 缺省情况下,自动从 WSDL 文件的名称空间字符串中派生包名称。 例如,如果名称空间的格式是 http://x.y.com 或 urn:x.y.com,相应的包是 com.y.x。
您可以通过使用 -NStoPkg 参数提供您自己的映射,只要需要,您就可以重复使用它,每次使用一个唯一的名称空间映射。 例如,在 WSDL 文件中有名为
urn:AddressFetcher2的名称空间,并且需要从此名称空间中对象生成的文件在包 samples.addr 中,那么在 WSDL2Java 命令中提供 -NStoPkg "http://urn:AddressFetcher2/"=samples.addr 参数。
- -timeout 秒
- 指定 WSDL2Java 命令在放弃之前等待 WSDL-URI 响应的时间长度 (以秒计)。 缺省为 45 秒,-1 禁用超时。
- -genResolver
- 生成绝对导入解析器类。 该类是用来记录 WSDL URI 使用的导入的 WSDL 文件的内容。 运行时将使用该类,以后 WSDL2Java 命令运行的时候也能使用它。 当导入的 WSDL 文件是远程文件或者不可访问时,需要这种灵活性。 如果使用了导入解析器,那么在运行时远程 WSDL 文件不可能像在开发期间一样具有不同内容。 生成的类名称为
_AbsoluteImportResolver.java。 使用 WSDL2Java 命令生成的其他 Java 类来编译和打包此类。 - -useResolver 解析器类
- 指定在语法分析期间使用的绝对导入解析器类。 必须在使用 -genResolver 选项的前一次 WSDL2Java 命令运行期间创建了此类。 此类在 CLASSPATH 变量中必须存在。
- -deployScope 争论
- 指示如何部署服务器实现。 有效参数包含:
- 应用程序
- 对于所有请求使用实现类的一个实例。
- 请求
- 为每个请求创建实现类的一个新的实例。
- 会话
- 为每个会话创建实现类的一个新的实例。
其他参数
- -user 标识
- 指定访问 WSDL URI 的登录用户名。
- -password password
- 指定访问 WSDL URI 的登录用户密码。
- -all
- 为所有类型生成 Java 文件,即使未引用的类型也是如此。
- -allowRelativeNamespace true 或 false
- 指定是否禁用相对名称空间限制。 如果指定 -allowRelativeNamespace=true,那么会禁用相对名称空间限制。避免麻烦: 仅当您具有依赖于相对名称空间的已建立 WSDL 文件或模式,并且正在寻求与一组允许使用相对名称空间的已定义供应商进行互操作时,才使用此属性。
- -debug
- 打印调试信息。
- 打印调试信息参数
- 生成 Java 文件。 有效参数包含:
- IfNotExists,缺省值
- Overwrite
- 否
- -javaSearch
- -javaSearch 选项与 -genJava 选项配合使用。 如果使用 -genJava IfNotExists,那么使用 -javaSearch 选项来确定如何检测文件存在。
- File(缺省值):在输出目录中查找文件
- Classpath:在 CLASSPATH 变量中查找类
- Both:在输出目录中查找文件或在 CLASSPATH 变量中查找类
- -genXML 争论
- 生成 .xml 和 .xmi 文件。 有效自变量为:
- IfNotExists,缺省值
- Overwrite
- 否
- -genImplSer true 或 false
- 指示每个生成的 Java Bean 实现 java.io.Serializable。 缺省值为 false。
- -genEquals true 或 false
- 指示每个生成的 Java Bean 都具有 equals 和 hashCode 方法。 缺省值为 false。
- -noWrappedOperations
- 禁用合并的操作检测。 将生成请求和响应消息的 Java Bean。
- -noWrappedArrays
- 禁用合并的数组检测。
- -fileNStoPkg 文件名
- 指定打包映射名称空间的文件。 缺省值为 NStoPKG.properties。
- - 服务 wsdl 服务名称
- 仅为已安装的 WSDL 服务生成文件。
- -testCase
- 生成 JUnit 测试用例模板用于测试 Web Service。 JUnit 只是一个框架,用来写可重复的测试。