Web Service 首选项

要设置任何 Web Service 首选项,遵循下列步骤:
  1. 单击窗口 > 首选项来打开“首选项”笔记本。
  2. 展开 Web Service,并单击想要设置的首选项类别。
  3. 选择在创建 Web Service 时想要设置为缺省值的复选框。
  4. 单击确定以应用更改并关闭“首选项”笔记本。
如果需要有关任何选项的更多信息,则选择该选项并按 F1 键。

Web Service 工具使您能够定义下列首选项:

向后兼容性
向后兼容性首选项使您能够使用与先前 WebSphere® Studio 发行版兼容的选项。仅当您正在使用的是使用 IBM® SOAP 运行时环境的 Web Service 时,此首选项才适用。
如果在下列各项内容中具有不允许作为 Java™ 标识符的下划线或其它字符:
  • 当从 Java bean 或 EJB 创建 Web Service 时,作为 bean 属性的名称
  • 当创建 Web Service 客户机代理时,作为 XSD 文件中复杂类型的元素名称
不要选择使用 V4 映射样式 Web Service 向后兼容性首选项。例如,如果您具有称为 Bean 的 bean,而它具有称为 mybean_name 的属性,并且指定使用 V4 映射样式,则在运行时可能会产生与下面类似的错误: exception: [SOAPException: faultCode=SOAP-ENV:Client; msg=Unable to unmarshall mappings.BeanContentType。Unable to find setter method with method name setMybeanName for class mappings.BeanContentType.]
代码生成
“代码生成”首选项使您能够设置下列选项:
  • 如果要使用 IBM SOAP 运行时环境创建 Web Service:
    • 将绝对位置 URI 用于 WSDL import 语句。
    • 生成代码时使用直接插入模式。
    • 对代理文件启用基于元素的映射。
    • 将 XML 简单数据类型映射至 java.lang 包装器类而不是映射至 Java 基本类型。
  • 如果要使用 IBM WebSphere 运行时环境创建 Web Service:
    • 当从 WSDL 生成 Java 时禁用数据绑定并使用 SOAP 元素。缺省情况下,Web Service 向导将遵循 JAX-RPC 规则并且只将不受支持的 XSD 类型映射至 SOAPElement 对象。通过选择此选项,发射器将任何内容都映射至 SOAPElement 对象。这将允许您选择一个备用 XSD 至 Java 映射(例如,EMF 或 SDO),并在整个“服务端点接口”一致地应用它们的映射。
    • 不要覆盖可装入的 Java 类。当选择了此选项时,Web Service 向导将不会把任何 Java 类写入以下两种目标项目:
      • 项目中尚不存在的目标项目
      • 当应用程序在服务器上运行时,在可从该目标项目装入的项目、模块或 JAR 文件中的目标项目。
      如果未选择此选项,则这些向导可能将 Java 类写入目标项目,这将覆盖其它项目、模块或 JAR 文件中具有相同名称的预先存在的类。这可导致运行时环境和编译错误。

      当前存在的一个问题是:在“处理程序配置”向导中添加处理程序之后,向导将在项目的主要源文件夹中生成新的框架处理程序 Java 文件,除非处理程序 Java 文件已经存在于同一位置,并且尚未选择“不要覆盖可装入的 Java 类”。向导不会检查 EAR 中的其它位置是否存在具有相同标准名称的处理程序。因此,当使用向导来添加已经存在于 EAR 中的其它位置(例如,存在于项目中的另一个源文件夹或者存在于 EAR 的另一个模块中)的处理程序时,向导将编写新的框架处理程序,用来替代原始的处理程序类。如果发生这种情况,则应删除向导生成的框架处理程序。

    • 当选择了 WebSphere V5.1 应用程序服务器作为 Web Service 服务器目标时,请使用 WebSphere V5.1.1 Web Service 发射器。由于 Web Service 工具不能检测 Web Service 将以哪个版本的 WebSphere Application Server 作为目标,因此,为服务器版本选择正确级别的发射器是很重要的。如果您取消选择此复选框,则 Web Service 工具将使用 WebSphere V5.1.0 发射器来生成代码, 并且此代码将在 WebSphere Application Server V5.0.1 和 V5.1.1 上起作用。如果您选择了该复选框,则将使用 WebSphere V5.1.1 发射器,并且将只在 WebSphere Application Server V5.1.1 上编译此代码。
注意,使用 IBM SOAP 运行时环境的时候生成基于元素的映射时
  • 当使用 IBM SOAP 运行时环境的时候,如果选择了“启用基于元素的映射”,则除了任何普通的基于类型的映射之外,现在 Web Service 向导还完全能够生成基于元素的映射。

    如果不启用此首选项(这是缺省情况),则 Apache/IBM SOAP 运行环境可能不会与其它供应商的 Web Service 运行时环境(该环境发送其元素没有“xsi:type”属性的消息)互操作。其它供应商的 Web Service 运行时环境在包括 xsi:type 属性这一方面遵循不同的策略。某些策略总是包括这些属性。而某些策略永远也不会包括这些属性。某些策略提供了配置选项。某些策略对特定类型(例如,数组)省略 xsi:types。

    IBM/Apache SOAP 运行时环境产生的典型错误是:

    targetException=java.lang.IllegalArgumentException:找不到反序列化器以使用编码样式“http://schemas.xmlsoap.org/soap/encoding/”对“:MyElement”进行反序列化。 当启用了它时,将基于元素的映射生成到:
    • 自底向上 Java bean/EJB 方案和 WSDL 框架方案的部署描述符文件中
    • 客户机方案的代理中

    基于元素的映射格式为:

    <isd:map encodingStyle="encoding style" xmlns:x="some-namespace" qname="x:some-local-name" xml2JavaClassName="some-deserializer-class-name"/>

    基于元素的映射是为以下项生成的:

    • 在每个 wsdl:message 输入中定义的每个部件。
    • 在每个 wsdl:message 输出中定义的每个部件(仅适用于“框架”和“代理”方案)。
    • 由 WSDL 文件中的部件引用的每个复杂类型中的每个根元素或本地元素。

    WSAD Web Service 向导遵循 SOAP 和 XSD 规范来确定基于元素的映射中的元素名称应当是限定的(即,具有名称空间)还是非限定的。

    WSAD Web Service 向导遵循下列规则以决定是限定元素名称还是非限定元素名称:

    • WSDL 中的部件名称产生非限定的名称。
    • XSD 中的根元素产生限定的名称。
    • 如果模式指定 elementFormDefault="unqualified",则 XSD 中的本地元素产生非限定名称。非限定的名称是在模式没有 elementFormDefault 属性情况下的缺省值。
    • 如果模式指定 elementFormDefault="qualified",XSD 中的本地元素产生限定的名称。

    某些运行时环境在 SOAP 消息中会生成非限定的元素,不管模式是不是通过 XSD 模式的“elementFormDefault”属性指定使用限定元素。在这种情况下,可能需要手工编辑服务的 WSDL 或 XSD 并将 elementFormDefault 更改为“unqualified”。

    非限定名称空间的基于元素的映射的一个示例是:

    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x="" qname="x:name" xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>

    限定名称空间的基于元素的映射的一个示例是:

    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x="http://www.ibm.com/" qname="x:name" xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>

    请注意,对于给定的一个元素名称,将只生成一个基于元素的映射。即,如果模式多次使用同一元素名称但使用不同的类型,则将只随机选择其中一个元素来作为基于元素的映射的基础。将无法对其它名称相同但类型不同的元素进行反序列化。如果模式将同一名称用于元素以及用于 WSDL 部件,情况也是一样。

  • 当以返回“映射”数组或“散列表”数组的服务 bean 开始并启用了“基于元素的映射”选项时,生成的“SOAP 代理”将不正确地把返回类型映射至 java.lang.String[]。在运行时将发生 ClassCastException。要解决此问题,用最近创建的 WSDL 运行 Web Service 客户机向导并将 SOAP 代理重新生成到客户机项目中。
  • 如果选择 Web Service 代码生成首选项“启用基于元素的映射”并且选择了部署到 WebSphere Application Server V4,则在 ISD 文件和 dds.xml 中可能会有以下条目:

    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x="" qname="x:some-name" xml2JavaClassName="some-serializer"/>

    XML 编辑器可能会标记以下错误:

    The value of the attribute "xmlns:x" is invalid.  Prefixed namespace bindings may not be empty.

    此错误对于 WebSphere Application Server V4 是无害的。然而,不要尝试将此 dds.xml 部署到使用 Xerces 2.x (XML4J 4.x) 或更高版本(例如,WebSphere Application Server V5)的其它服务器。否则,在服务器装入 dds.xml 文件时将会产生类似的 Xerces 解析错误。应通过完成 Web Service 方案并选择正确的服务器类型来重新生成 dds.xml。这将为该服务器类型生成正确的 dds.xml。

    另外,当尝试从该 ISD 文件部署 Web Service 时也会产生类似的 Xerces 解析错误。变通方法是手工将该文件编辑为以下格式:

    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="some-name" xml2JavaClassName="some-serializer"/>

JDBC 驱动程序
“JDBC 驱动程序”首选项使您能够为 JDBC 驱动程序添加 JAR 文件。在 Linux 上,可能会很难确定包含 JDBC 驱动程序的 JAR 文件的位置。因此,添加了此首选项,以便您可以指定要使用哪个 JAR 文件。此首选项仅供 DADX 验证代码在 Linux 上使用。
选择弹出对话框
“对话框”首选项使您能够确定在运行弹出操作时想要看到哪些对话框。如果您通过选择 Web Service 向导第一个页面上的“不再显示此对话框”而禁用了任何对话框,则可以通过清除您已选择要隐藏的对话框旁边的复选框来撤销更改。
专用 UDDI 注册中心
使用此页面来设置 UDDI 类别数据列和字符串定界符。
项目拓扑
“项目拓扑”首选项允许您:
  • 选择在生成 Web Service 客户机时 Web Service 向导将创建的缺省客户机项目类型。还可以在向导中设置将列示客户机项目类型的顺序。注意,此选择仅仅是一个缺省值,可以在向导中选择一种备用项目类型。
  • 选择是想在相同 EAR 项目中还是在不同 EAR 项目中生成 Web Service 和 Web Service 客户机。将服务和客户机生成到不同 EAR 项目中与这两者存在于单个 EAR 项目中相比,发生冲突的机会要少,但是将使用较多系统资源。
资源管理
“资源管理”首选项使您能够确定在创建 Web Service 时想要使用的文件和文件夹创建及覆盖缺省值。
方案缺省值
“方案缺省值”首选项使您能够设置下列在创建 Web Service 时想要使用的方案缺省值:
  • 缺省情况下,您想选择哪种类型的 Web Service。
  • 您是否想由向导启动 Web Service。
  • 缺省情况下,您是否想要启动 Web Service 资源管理器,以便可以将 Web Service 发布至 UDDI 注册中心。
  • 您是否想生成代理以及所生成的代理的缺省类型。
  • 缺省情况下,您是否想要启动 Web Service 资源管理器,以便可以测试 Web Service。
  • 您是否想通过 TCP/IP 监视器来传递 Web Service SOAP 流量,以便可以监视 SOAP 信息包,并且可以选择测试它们以了解 WS-I 一致性。
注意,所有这些缺省值都可以在向导中被覆盖。
服务器和运行时
选择您在缺省情况下想在 Web Service 向导中选择的服务器、Web Service 运行时环境和 J2EE 版本。注意,所有这些缺省值都可以在向导中被覆盖。
SOAP 传输
选择缺省传输:SOAP over HTTP 或 SOAP over JMS。仅当您正在使用的是使用 WebSphere 运行时环境的 Web Service 时,此首选项才适用。
测试工具缺省值
可以选择是否想让向导自动启动测试工具,并且可以选择测试工具的首选类型
Web Service 资源管理器
“Web Service 资源管理器”首选项允许您选择是否忽略 SOAP 数组的模式。当测试使用 IBM SOAP 运行时环境的 Web Service 时,建议使用此首选项。
WSDL 文件
当在 WSDL 编辑器中创建 WSDL 文件时,可以设置缺省目标名称空间。如果您选择不更改缺省值,则 WSDL 文件将把 http://tempuri.org 作为它的目标名称空间。
WS-I 一致性
“WS-I 一致性”首选项允许您选择与 WS-I Simple SOAP Binding Profile(SSBP)和 WS-I Attachement Profile(AP)的一致性级别。此首选项主要适用于使用 WebSphere 运行时环境的 Web Service。使用 IBM SOAP 运行时环境和 Apache Axis 运行时环境的 Web Service 通常不符合 WS-I。注意:如果在“任务”视图中列示了 WS-I 不一致性的情况下更改 WS-I 一致性的级别,则“任务”视图将不会自动更新。必须重新验证了工作空间之后才能从“任务”视图中除去警告。
使用条款 | 反馈
(C) Copyright IBM Corporation 1999, 2005. All Rights Reserved.