Web 服务工具 - 发行说明

1.0 简介
2.0 受支持的软件和规范
3.0 对前发行版的更改
4.0 限制
   4.1 供应链管理样本不能运行
5.0 已知问题
   5.1 Web 服务资源管理器
   5.2 TCP/IP 监视服务器在 Linux 上不工作
   5.3 与 IBM SOAP 运行时的互操作性
   5.4 从 DADX 文件生成 WSDL 文档
   5.5 Web 工具 JSP 生成器
   5.6 医院方案
   5.7 使用通用测试客户机
   5.8 在某些情况下允许 DADX Web 服务有多个输出
   5.9 JDBC 驱动程序首选项仅供在 Linux 上使用
   5.10 如果 XML Extender 未安装在缺省目录中,则需要更新 DAD 示例文件
   5.11 DADX Web 服务问题
   5.12 如果 Mozilla 和 Netscape 都在运行,则不能正确显示资源管理器弹出对话框
   5.13 DADX 生成支持
   5.14 从 4.0.x 导入 Web 服务文件之后产生的 WSDL 错误
   5.15 将 Linux 与 GTK 配合使用时产生问题
   5.16 将 Tomcat 服务器与 AXIS 运行时配合使用
   5.17 使用 Web 服务命令行时产生问题
   5.18 在没有现有服务器的情况下创建 Web 服务
   5.19 生成 Web 服务样本应用程序
   5.20 使用 HTTP 基本认证导入 WSDL 文件
   5.21 使用 WebSphere V5.0.2 运行时的问题
   5.22 使用数据源信息设置 DADX 组
   5.23 使用通用测试客户机装入客户机定位器
   5.24 未发现资源首选项
   5.25 使用 Apache Axis 1.0 运行时的问题
   5.26 Web 服务样本 JSP 编译失败
   5.27 未定义本地主机错误
   5.28 当使用 IBM SOAP 运行时时的永久限制
   5.29 使用不同运行时的 Web 服务和客户机
   5.30 在 Web 服务客户机向导中单击完成
   5.31 Web 服务备忘单

1.0 简介

Web 服务工具功能部件使您能够发现、创建和发布 Java bean、DADX、企业 bean 和 URL Web 服务。本自述文件描述与下列 Web 服务工具功能相关联的已知问题、限制与变通方法:

2.0 受支持的软件和规范

本发行版的 Web 服务工具生成符合下列规范的代码:

本发行版的 Web 服务工具支持:

如果要在工作台外部使用 Mozilla 来启动 WORF 测试环境,建议使用的 Mozilla 版本至少为 1.3.1。调用 Web 服务所获得的输出以及描述文件在先前版本的 Mozilla 浏览器中不能正确显示。

DADX 运行时需要 DB2 7.2 修订包或更高级别的修订包,或者 DB2 8.1 或更高版本。

3.0 对前发行版的更改

下列功能部件在 V5.1 中的 Web 服务工具中是新增的:

4.0 限制

4.1 供应链管理样本不能运行

“供应链管理”样本不能在 WAS Express 上运行。

5.0 已知问题

5.1 Web 服务资源管理器

5.2 TCP/IP 监视服务器在 Linux 上不工作

TCP/IP 监视服务器在 Linux 上不工作。只要尝试在 Web 服务与 Web 服务客户机(例如,Web 服务样本 JSP、Web 工具 Java bean JSP 和通用测试客户机)之间插入监视服务器,就会影响客户机与服务之间的通信。尤其是,客户机将在来自服务的第一个响应上无限期挂起。要在样本 JSP 或 UTC 中从这种情况进行恢复,应关闭所有浏览器,然后从 WebSphere Studio 外部启动新的浏览器,并为生成的样本 JSP 或“通用测试客户机”输入适当的 URL。

要监视 Linux 上的 SOAP 流量,尝试 Apache SOAP 运行时附带包括的另一种监视工具(例如,TCP/IP 隧道),可以从 http://ws.apache.org/soap/index.html.tool 处下载这种工具。启动该隧道并调用 Web 服务客户机操作。请求和响应流量应该出现在隧道中,但是,客户机将暂挂。停止隧道。这将导致客户机取消阻塞,于是将完成操作。在尝试下一个调用之前重新启动隧道。

5.3 与 IBM SOAP 运行时的互操作性

5.4 从 DADX 文件生成 WSDL 文档

5.5 Web 工具 JSP 生成器

必须将 DB2 驱动程序 db2java.zip 添加至 WebSphere ws.ext.dirs 类路径。要添加 db2java.zip,执行下列操作:

  1. 切换到“服务器”透视图(窗口 > 打开透视图 > 服务器)。
  2. 在“服务器配置”窗格中,展开服务器
  3. 双击 WebSphere V.4.0 测试环境。“实例”编辑器打开。
  4. 在“实例”编辑器中,单击路径选项卡,然后单击 WebSphere 特定类路径(ws.ext.dirs)部分中的添加外部 JAR 来将 /home/db2inst1/sqllib/java12/db2java.zip 添加至 WebSphere 路径。
  5. 选择文件 > 保存(文件名)以保存更改,然后退出“实例”编辑器。

有关对“医院”方案文档的更新,请访问 WebSphere Developer Domain 并单击 Library

5.7 使用通用测试客户机

当从“Web 服务”向导启动“通用测试客户机”时,“JNDI 提供程序 URL”被设置为缺省 WebSphere v5 端口 2809。如果正在使用 WebSphere v4 服务器或者更改了端口号,则不能搜索 JNDI 目录。如果您尝试访问 JNDI 目录,就会产生以下错误:

IWAD0403E 不能构造 JNDI 树:当解析初始引用 =WsnNameService 时,捕获到 CORBA.COMM_FAILURE

变通方法是:

  1. 双击正在使用的服务器。这将显示服务器属性。
  2. 选择端口选项卡。
  3. 复制 Orb 引导程序端口。
  4. 在“通用测试客户机”中打开 JNDI 属性窗口。
  5. 将引导程序端口粘贴到“提供程序 URL”文本输入框中。

5.8 在某些情况下允许 DADX Web 服务有多个输出

通常,工具不支持 Web 服务中有多个输出。然而,对于 DADX Web 服务,如果将使用文档样式组属性设置为 true,则允许多个输出。在这种情况下,当文档样式true 时,会将多个输出一起组合成一个 XML 文档。

5.9 JDBC 驱动程序首选项仅供在 Linux 上使用

添加了称为 JDBC 驱动程序的新 Web 服务首选项(窗口 > 首选项 > Web 服务)类别。虽然此首选项在所有平台上都可用,但还是只打算在 Linux 上使用它。在 Linux 上,可能会很难确定包含 JDBC 驱动程序的 JAR 文件的位置。因此,添加此首选项页面,以便您可以指定要使用哪个 JAR 文件。当前,只有 DADX 验证代码使用此 JAR 文件信息。

5.10 如果 XML Extender 未安装在缺省目录中,则需要更新 DAD 示例文件

可能需要修改位于 WSinstall_dir\wstools\eclipse\plugins\com.ibm.etools.webservice_<version>\samples\DADX_examples 目录中的 DAD 文件才能反映特定系统配置。

在文件顶部附近,有类似于以下内容的一行:

<!DOCTYPE DAD SYSTEM "c:\dxx\dtd\dad.dtd">

如果已将 XML Extender 装入到不同于 c:\dxx 的位置中,则需要更新此字符串以反映实际位置。这也适用于 Linux 机器,在这些机器中,该位置通常是 /usr/IBMdb2xml

5.11 DADX Web 服务问题

5.12 如果 Mozilla 和 Netscape 都在运行,则不能正确显示资源管理器弹出对话框

如果 Mozilla 和 Netscape 都在运行,则不能正确显示 Web 服务资源管理器的弹出对话框。弹出对话框包括“浏览 WSDL”对话框和“浏览类别”对话框。要解决此问题,使用 Mozilla 或 Netscape,但是不要同时使用它们。

5.13 DADX 生成支持

尽管用户定义的函数列示在“生成 DADX”向导中,但是,当前不支持从用户定义的函数生成 DADX。仅支持从 DAD 文件、存储过程和 SQL 语句生成 DADX。选择 UDF 将生成简单的 DADX 框架文件。

5.14 从 4.0.x 导入 Web 服务文件之后产生的 WSDL 错误

如果已经从 4.0.x 导入了 Web 服务文件,则可能会接收到下列错误消息:

错误 部件“result”为它的类型定义了无效值“anyElement”。类型声明必须引用在模式中定义的有效值。

错误 部件“return”为它的元素定义了无效值“findPatientResult”。元素声明必须引用在模式中定义的有效值。

错误 部件“response”为它的元素定义了无效值“findPatientResponse”。元素声明必须引用在模式中定义的有效值。

变通方法是:

  1. 删除 WSDL 文件。
  2. 通过重新运行“Web 服务”向导来重新生成 Web 服务。

5.15 将 Linux 与 GTK 配合使用时产生问题

5.16 将 Tomcat 服务器与 AXIS 运行时配合使用

5.17 使用 Web 服务命令行时产生问题

5.18 在没有现有服务器的情况下创建 Web 服务

5.19 生成 Web 服务样本应用程序

5.20 使用 HTTP 基本认证导入 WSDL 文件

当从具有相关导入且受“HTTP 基本认证”保护的 WSDL 文件生成框架或客户机时,用户将看到一条错误消息,指示即使输入了正确的用户标识和密码,也不能解析 WSDL 文件。问题在于用户标识和密码仅用来检索原始 WSDL 文件,而并未用来检索它导入的文件。

要克服此问题,用户可先下载 WSDL 文件及它导入至工作台的所有文件,然后从已下载 WSDL 文件生成框架或客户机。

5.21 使用 WebSphere V5.0.2 运行时的问题

5.22 使用数据源信息设置 DADX 组

如果 WebSphere Application Server V5.0 正用来主管 DADX Web 服务,则 DADX 组的 group.properties 文件应使用以下 initialContextFactory 属性:

initialContextFactory=com.ibm.websphere.naming.WsnInitialContextFactory

而且,包含 DADX 组的项目的 web.xml 文件需要添加下列内容。(假定数据源 JNDI 名为 jdbc/hospital。)

       <resource-ref id="ResourceRef_1058550453092">
              <res-ref-name>jdbc/hospital</res-ref-name>
              <res-type>javax.sql.DataSource</res-type>
              <res-auth>CONTAINER</res-auth>
              <res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
 

5.23 使用通用测试客户机装入客户机定位器

当“通用测试客户机”无法预装入 WebSphere V5.0.2 或 Axis 运行时生成的客户机定位器类时,这是因为服务 Web 项目中的 Java bean 类的名称与客户机 Web 项目中的 SEI 类的名称相同。要解决此问题:

  1. 从工作空间中除去客户机 Web 项目。
  2. 在另一 EAR 下创建客户机 Web 项目,该 EAR 的项目名按字母顺序必须在服务 EAR 项目名之前。例如,如果服务 EAR 项目名称为“DefaultEAR”,则创建称为“ClientEAR”的新 EAR 项目名。
  3. 重新运行“Web 服务”向导。

 

5.24 未发现资源首选项

在使用 WebSphere V5.0.2 和 Axis 运行时创建 Web 服务时,未发现覆盖文件、创建文件夹和自动检出文件首选项。创建文件夹总是允许的,且自动检出文件决不是启用的。

在使用 WebSphere V5.0.2 运行时时,WSDL 文件、SEI 和部署构件(串行器和解串器)总是被覆盖。开发构件(服务 bean、复杂类型 bean、holder 和 helper 类)决不会被覆盖。但是,用户将获得一条警告,说明将覆盖部署描述符(如果它们存在的话)。用户可选择“确定”以覆盖部署描述符并继续该方案,或选择“取消”以避免覆盖这些描述符。

在使用 Apache Axis 1.0 运行时时,Axis 发射极每次都会重新生成所有服务器/客户机 Java 文件、deploy.wsdd 和 undeploy.wsdd。服务生成方案的 WSDL2Java 将仅生成框架实现文件(如果它还不存在的话)。如果此实现已经存在,则不会覆盖它。

5.25 使用 Apache Axis 1.0 运行时的问题

5.26 Web 服务样本 JSP 编译失败

当从对其 <服务> 元素和 <端口> 元素之一使用相同名称的 WSDL 生成 Web 服务框架或代理时,不要将样本 JSP 用作测试客户机。生成的样本 JSP 包含错误且不会进行编译。尝试在服务器上运行样本 JSP 将导致浏览器中出现 ERROR 500,指示不能装入样本 JSP,而服务器控制台中的异常指示 servlet 容器无法编译样本 JSP。

5.27 未定义本地主机错误

如果在计算机上未定义主机名“localhost”,则在生成 WSDL 期间 Web 服务创建向导可能会失败。如果未定义“localhost”,则 UTC 也可能无法成功启动。

在 Windows 中,[INSTALL-DRIVE]\WINNT\system32\drivers\etc\hosts 文件中必须存在以下条目:

127.0.0.1 localhost

在 Linux 中,/etc/hosts 文件中必须存在以下条目:

127.0.0.1 localhost

5.28 当使用 IBM SOAP 运行时时的永久限制

IBM SOAP 运行时应主要用于向下兼容性原因。强烈建议为所有生产用途将 Web 服务向导与 IBM WebSphere 5.0.2 运行时配合使用。在将 Web 服务向导与 IBM SOAP 运行时配合使用时,用户可能会遇到下列永久限制:

5.29 使用不同运行时的 Web 服务和客户机

如果从 Java bean 或 EJB 创建 Web 服务,选择 IBM SOAP 作为服务运行时并选择 Apache Axis 1.0 作为客户机运行时将获得以下错误:
找不到 WSDL

要避免此问题,先创建 Web 服务而不选择生成代理。然后从生成的 WSDL 文件创建 Web 服务客户机。

5.30 在 Web 服务客户机向导中单击完成

在执行 Web 服务客户机向导时,如果用户在“客户机环境配置”页面上单击“完成”,将获得以下错误:

“null”是不可解析的

变通方法是在该页面和下一页面中点击“下一步”,然后点击“完成”。

5.31 Web 服务备忘单

在“创建、测试和验证符合 WS-I 的 Web 服务备忘单”和“从 WSDL 文件创建 Web 服务备忘单”中,如果从 wsad_install/wstools/eclipse/plugins/com.ibm.etools.cs.wsdl.content_5.1/examples 中使用 HelloService.wsdl 文件,请根据不同的运行时修改服务端口位置,如下所示:

对于 IBM Soap:

location="http://localhost:9080/HelloWorldSample/servlet/rpcrouter"

对于 Apache Axis 或 WebSphere 5.0.2 运行时

location="http://localhost:9080/HelloWorldSample/services/Hello_Port"

如果正在导入您自己的 wsdl 文件,请确保按照上述内容根据所选运行时对位置作了正确设置。

返回到主自述文件