用于 JAX-RPC 应用程序的 WSDL2Java 命令
对 WSDL 文件运行 WSDL2Java 命令行工具以创建 Java™ API 和部署描述符模板。
z/OS® 平台不支持 WSDL2Java 命令行工具。此功能是由在 z/OS 平台上运行的 WebSphere® Application Server 附带的组装工具提供的。
Web 服务描述语言 (WSDL) 文件描述 Web Service。Java API for XML-based Remote Procedure Call (JAX-RPC) 1.1 规范定义与 Web Service 进行交互的 Java API 映射。Web Service for Java Platform, Enterprise Edition (Java EE) 规范定义用于在 Java EE 环境中部署 Web Service 的部署描述符。根据这些规范,对 WSDL 文件运行 WSDL2Java 命令以创建 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
生成用于服务器开发的文件。
- server
develop-server 和 deploy-server 参数的组合。
- 客户机
- -container Java EE 容器 指示要使用的 Java EE 容器。有效参数包含:对于客户机角色(请参阅 -role 选项),缺省参数为 none。对于服务器角色,那么容器必须是 ejb 或 web。开发和部署必须使用同一个容器选项。
- 客户机
指示客户机容器。
- ejb
指示 Enterprise JavaBeans (EJB) 容器。
- none
指示没有容器。
- web
指示 Web 容器。
- 客户机
- -output directory
设置发出的文件的根目录。
- -inputMappingFile mapping file
指定 Web Services for Java EE 映射文件的文件名。
- -introspect
使用具有新 Web Service API 的现有 Java Bean。
在某些方案中,使用现有 Java 类而不生成新类是可取的方法。-introspect 选项指示 WSDL2Java 命令在生成类时检查现有的 Java 类。按照 JAX-RPC 规范验证现有的类。例如:
假设您有现有的 Java Bean
WSDL 文件将 x 定义为 xsd:dateTime。如果没有 -introspect 选项,那么 WSDL2Java 命令生成类似以下示例的 Java Bean:public class Bean { public Date x; }
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 paths
定义另一个搜索 Java 类的类路径。
- -noDataBinding
禁用 XML 类型到 Java 类型的绑定。改为将每个 XML 类型映射到由带附件的 SOAP Java API (SAAJ) 规范定义的 javax.xml.soap.SOAPElement 接口。
Java API for XML Web Services (JAX-WS) programming model 编程模型支持 SAAJ 1.2 和 1.3。
JAX-RPC 编程模型支持 SAAJ 1.2。
Java 编程模型定义 XML 类型子集的 Java 映射。某些 XML 类型无法映射到 Java Bean 或原语。在这种情况下,WSDL2Java 命令将类型映射到 SAAJ SOAPElement。SAAJ SOAPElement 是消息中元素的一般表示。SOAPElement 上的方法可以用于检查元素及其子元素。
在某些方案中,仅使用通用 SOAPElement 映射可能更合适。要了解有关 SOAPElement 用法的更多信息,请参阅“带附件的 SOAP Java API 接口”和“JAX-RPC 应用程序的定制数据绑定程序”的相关信息。
有关受支持的标准和规范的完整列表,请参阅 Web Service 规范和 API 文档。
- -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 seconds
指定 WSDL2Java 命令等待 WSDL-URI 响应时需等待多长时间(以秒计)才能放弃。缺省为 45 秒,-1 禁用超时。
- -genResolver
生成绝对导入解析器类。该类是用来记录 WSDL URI 使用的导入的 WSDL 文件的内容。运行时将使用该类,以后 WSDL2Java 命令运行的时候也能使用它。当导入的 WSDL 文件是远程文件或者不可访问时,需要这种灵活性。如果使用了导入解析器,那么在运行时远程 WSDL 文件不可能像在开发期间一样具有不同内容。生成的类名称为 _AbsoluteImportResolver.java。您应使用由 WSDL2Java 命令生成的其他 Java 类编译和打包此类。
- -useResolver resolver-class
指定在语法分析期间使用的绝对导入解析器类。必须在使用 -genResolver 选项的前一次 WSDL2Java 命令运行期间创建了此类。此类在 CLASSPATH 变量中必须存在。
- -deployScope 参数 指示如何部署服务器实现。有效参数包含:
- 应用程序
对于所有请求使用实现类的一个实例。
- 请求
为每个请求创建实现类的一个新的实例。
- Session
为每个会话创建实现类的一个新的实例。
- 应用程序
其他参数
- -user id
指定访问 WSDL URI 的登录用户名。
- -password password
指定访问 WSDL URI 的登录用户密码。
- -all
为所有类型生成 Java 文件,即使那些没被引用。
- -allowRelativeNamespace true 或 false
指定是否禁用相对名称空间限制。如果指定 -allowRelativeNamespace=true,那么会禁用相对名称空间限制。
避免故障: 仅当已建立的 WSDL 文件或模式依赖于相对名称空间,并且您寻求与已定义的供应商集进行互操作以允许使用相对名称空间时,才使用此属性。gotcha
- -debug
打印调试信息。
- -genJava 参数 生成 Java 文件。有效参数包含:
- IfNotExists(缺省值)
- Overwrite
- No
- -javaSearch argument-javaSearch 选项与 -genJava 选项配合使用。如果使用 -genJava IfNotExists,那么使用 -javaSearch 选项来确定如何检测文件存在。
- File(缺省值):在输出目录中查找文件
- Classpath:在 CLASSPATH 变量中查找类
- Both:在输出目录中查找文件或在 CLASSPATH 变量中查找类
- -genXML argument生成 .xml 和 .xmi 文件。有效参数为:
- IfNotExists(缺省值)
- Overwrite
- No
- -genImplSer true 或 false
指示每个生成的 Java Bean 实现 java.io.Serializable。缺省值为 false。
- -genEquals true 或 false
指示每个生成的 Java Bean 具有 equals 和 hashCode 方法。缺省值为 false。
- -noWrappedOperations
禁用合并的操作检测。生成请求和响应消息的 Java Bean。
- -noWrappedArrays
禁用合并的数组检测。
- -fileNStoPkg 文件名
指定打包映射名称空间的文件。缺省值为 NStoPKG.properties。
- service WSDL 服务名称
仅为已安装的 WSDL 服务生成文件。
- -testCase
生成 JUnit 测试用例模板用于测试 Web Service。JUnit 只是一个框架,用来写可重复的测试。