用于 JAX-RPC 应用程序的 WSDL2Java 命令

对 WSDL 文件运行 WSDL2Java 命令行工具以创建 Java™ API 和部署描述符模板。

[z/OS]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 和部署描述符模板。

最佳实践 最佳实践: 最好的做法是在 WSDL 或模式中使用绝对名称空间。缺省情况下,WSDL2Java 工具不允许使用相对名称空间。XML Plenary Interest Group 不推荐使用相对名称空间,按照“规范 XML V1.0”规范的要求,使用相对名称空间会导致 XML 数字签名失败。但是,如果已建立的 WSDL 或模式依赖于相对名称空间,那么在特定条件下,您可以使用 allowRelativeNamespace 属性来禁用 WSDL2Java 工具中的相对名称空间限制。有关其他信息,请参阅属性描述。bprac
可以将任何相对名称空间转换为绝对名称空间。以下是相对名称空间的示例:
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 容器。有效参数包含:
    • 客户机

      指示客户机容器。

    • ejb

      指示 Enterprise JavaBeans (EJB) 容器。

    • none

      指示没有容器。

    • web

      指示 Web 容器。

    对于客户机角色(请参阅 -role 选项),缺省参数为 none。对于服务器角色,那么容器必须是 ejbweb。开发和部署必须使用同一个容器选项。
  • -output directory

    设置发出的文件的根目录。

  • -inputMappingFile mapping file

    指定 Web Services for Java EE 映射文件的文件名。

  • -introspect

    使用具有新 Web Service API 的现有 Java Bean。

    在某些方案中,使用现有 Java 类而不生成新类是可取的方法。-introspect 选项指示 WSDL2Java 命令在生成类时检查现有的 Java 类。按照 JAX-RPC 规范验证现有的类。例如:

    假设您有现有的 Java Bean
    public class Bean {
    	public Date x;
    }
    WSDL 文件将 x 定义为 xsd:dateTime。如果没有 -introspect 选项,那么 WSDL2Java 命令生成类似以下示例的 Java Bean:
    public class Bean {
    	private Calendar x;
    	public void setx(Calendar value) (x=value;)
    	public Calendar getX() { return x;)
    }
    WSDL2Java 命令使用 -introspect 选项检查原始的 Java Bean 并生成与现有的 Java Bean 兼容的类。
  • -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.comurn: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 具有 equalshashCode 方法。缺省值为 false。

  • -noWrappedOperations

    禁用合并的操作检测。生成请求和响应消息的 Java Bean。

  • -noWrappedArrays

    禁用合并的数组检测。

  • -fileNStoPkg 文件名

    指定打包映射名称空间的文件。缺省值为 NStoPKG.properties。

  • service WSDL 服务名称

    仅为已安装的 WSDL 服务生成文件。

  • -testCase

    生成 JUnit 测试用例模板用于测试 Web Service。JUnit 只是一个框架,用来写可重复的测试。


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



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