用于 JAX-RPC 应用程序的 WSDL2Java 命令
跑过WSDL2Java针对 WSDL 文件的命令行工具来创建 Java™ API 和部署描述符模板。
这WSDL2Java命令行工具不受支持z/OS®平台。 此功能由随附的组装工具提供WebSphere® Application Server运行于z/OS平台。
Web 服务描述语言 (WSDL) 文件描述 Web Service。 基于 XML 的远程过程调用 (JAX-RPC) 的 Java API 1.1规范定义了与 Web 服务交互的 Java API 映射。 Web 服务Java Platform, Enterprise Edition( Java EE ) 规范定义了部署描述符,用于在Java EE环境。 这WSDL2Java针对 WSDL 文件运行命令,以根据这些规范创建 Java API 和部署描述符模板。
targetNamespace="MyRelNamespace"。您可以通过添加协议和基本 URI 信息将此示例中的相对命名空间更改为绝对命名空间:targetNamespace="https://www.sample.com/MyRelNamespace"命令行语法
WSDL2Java [arguments] WSDL-URI必需自变量
- WSDL-URI
- 使用统一资源标识 (URI) 指定输入 WSDL 文件的位置。 如果 WSDL 文件在本地文件系统上,您也可以使用常规文件路径。
重要参数
- -角色Java EE角色
- 指定Java EE开发角色,用于标识要生成哪些文件。 有效参数包含:
- 客户机
- develop-client 和 deploy-client 参数的组合。
- deploy-client
- 生成用于客户机部署的绑定文件。
- deploy-server
- 生成用于服务器部署的绑定文件。
- develop-client(缺省值)
- 生成用于客户机开发的文件。
- develop-server
- 生成用于服务器开发的文件。
- 服务器
- develop-server 和 deploy-server 参数的组合。
- -容器Java EE -容器
- 表示Java EE容器使用。 有效参数包含:
- 客户机
- 指示客户机容器。
- ejb
- 表示企业JavaBeans (EJB)容器。
- 无
- 指示没有容器。
- web
- 指示 Web 容器。
- -输出目录
- 设置发出的文件的根目录。
- -inputMappingFile mapping file
- 指定 Web 服务的文件名Java EE映射文件。
- -introspect
- 将现有的 Java bean 与新的 Web 服务 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;) } - -类路径路径
- 定义用于搜索 Java 类的备用类路径。
- -noDataBinding
- 禁用 XML 类型与 Java 类型的绑定。 相反,每个 XML 类型都映射到
javax.xml.soap.SOAPElement由带有 Java 附件 API 的 SOAP (SAAJ) 规范定义的接口。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,查看有关用于 Java 接口的带附件 SOAP API 以及用于 JAX-RPC 应用程序的自定义数据绑定的信息。 - -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 参数。
- -暂停秒
- 指定WSDL2Java 命令会等待 WSDL-URI 响应(以秒为单位),然后才会放弃。 缺省为 45 秒,-1 禁用超时。
- -genResolver
- 生成绝对导入解析器类。 该类是用来记录 WSDL URI 使用的导入的 WSDL 文件的内容。 运行时将使用该类,以后 WSDL2Java 命令运行的时候也能使用它。 当导入的 WSDL 文件是远程文件或者不可访问时,需要这种灵活性。 如果使用了导入解析器,那么在运行时远程 WSDL 文件不可能像在开发期间一样具有不同内容。 生成的类名称为
_AbsoluteImportResolver.java。 将此类与由以下代码生成的其他 Java 类一起编译和打包:WSDL2Java命令。 - -useResolver解析器类
- 指定在语法分析期间使用的绝对导入解析器类。 必须在使用 -genResolver 选项的前一次 WSDL2Java 命令运行期间创建了此类。 此类在 CLASSPATH 变量中必须存在。
- -deployScope 争论
- 指示如何部署服务器实现。 有效参数包含:
- 应用程序
- 对于所有请求使用实现类的一个实例。
- 请求
- 为每个请求创建实现类的一个新的实例。
- 会话
- 为每个会话创建实现类的一个新的实例。
其他参数
- -用户ID
- 指定访问 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 只是一个框架,用来写可重复的测试。