Web 服务工具 - 发行说明

1.0 简介
2.0 受支持的软件和规范
3.0 对前发行版的更改
4.0 已知问题
   4.1 Web 服务资源管理器
   4.2 TCP/IP 监视服务器在 Linux 上不工作
   4.3 专用 UDDI 注册中心
   4.4 与 IBM SOAP 运行时的互操作性
   4.5 从 DADX 文件生成 WSDL 文档
   4.6 Web 工具 JSP 生成器
   4.7 医院方案
   4.8 使用通用测试客户机
   4.9 在某些情况下允许 DADX Web 服务有多个输出
   4.10 JDBC 驱动程序首选项仅供在 Linux 上使用
   4.11 如果 XML extender 未安装在缺省目录中,则需要更新 DAD 示例文件
   4.12 DADX Web 服务问题
   4.13 如果 Mozilla 和 Netscape 都在运行,则资源管理器弹出对话框可能不会正确显示
   4.14 DADX 生成支持
   4.15 从 4.0.x 导入 Web 服务文件之后产生 WSDL 错误
   4.16 将 Linux 与 GTK 配合使用时产生问题
   4.17 将 Tomcat 服务器与 AXIS 运行时配合使用
   4.18 使用 WebSphere V5.0.2 运行时创建 EJB Web 服务时产生问题
   4.19 使用 Web 服务命令行时产生问题
   4.20 在没有现有服务器的情况下创建 Web 服务
   4.21 生成 Web 服务样本应用程序
   4.22 使用 HTTP 基本认证导入 WSDL 文件
   4.23 使用 WebSphere V5.0.2 运行时的问题
   4.24 使用数据源信息设置 DADX 组
   4.25 使用通用测试客户机装入客户机定位器
   4.26 未发现资源首选项
   4.27 使用 Apache Axis 1.0 运行时的问题
   4.28 无法编译 Web 服务样本 JSP
   4.29 未定义本地主机所产生的错误
   4.30 使用 IBM SOAP 运行时的永久限制
   4.31 使用不同运行时的 Web 服务和客户机
   4.32 在 Web 服务客户机向导中单击“完成”
   4.33 创建 EJB Web 服务时选择路由器项目
   4.34 使用命令行创建 EJB Web 服务或 EJB 框架
   4.35 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 修订包 6 或更高版本或者 DB2 8.1 或更高版本。

3.0 对前发行版的更改

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

4.0 已知问题

4.1 Web 服务资源管理器

4.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 服务客户机操作。请求和响应通信量应该出现在隧道中,但是,客户机将看起来似乎暂挂。停止隧道。这将导致客户机取消阻塞并且完成操作。在尝试下一个调用之前重新启动隧道。

4.3 专用 UDDI 注册中心

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

4.5 从 DADX 文件生成 WSDL 文档

4.6 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

4.8 使用通用测试客户机

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

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

变通方法是:

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

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

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

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

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

4.11 如果 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

4.12 DADX Web 服务问题

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

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

4.14 DADX 生成支持

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

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

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

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

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

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

变通方法是:

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

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

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

4.18 使用 WebSphere V5.0.2 运行时创建 EJB Web 服务时产生问题

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

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

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

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

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

要解决此问题,用户可首先下载 WSDL 文件及其导入到工作台的所有文件,然后从下载的 WSDL 文件生成框架或客户机。

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

4.24 使用数据源信息设置 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>
 

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

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

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

 

4.26 未发现资源首选项

在使用 WebSphere V5.0.2 和 Axis 运行时创建 Web 服务时,未观察到文件覆盖、文件夹创建和自动文件检出首选项。始终允许文件夹创建,但从不启用自动文件检出。

当使用 WebSphere V5.0.2 运行时时,总是覆盖 WSDL 文件、SEI 和部署构件(串行器和解串器)。从不覆盖开发构件(服务 bean、复杂类型 bean、占位符和 helper 类)。但是,用户将接收到有关覆盖部署描述符(如果存在的话)的警告。用户可以选择“确定”以覆盖部署描述符并继续方案,或选择“取消”以避免覆盖描述符。

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

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

4.28 无法编译 Web 服务样本 JSP

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

4.29 未定义本地主机所产生的错误

如果在计算机上未定义主机名“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

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

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

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

如果从 Java bean 或 EJB 创建 Web 服务,并选择 IBM SOAP 作为服务运行时而 Apache Axis 1.0 作为客户机运行时,则可能会出现以下错误:
找不到 WSDL

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

4.32 在 Web 服务客户机向导中单击“完成”

完成 Web 服务客户机向导后,如果用户单击“客户机环境配置”页面上的“完成”,则会出现以下错误:

“null”不可解析

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

4.33 创建 EJB Web 服务时选择路由器项目

当从 EJB 创建 Web 服务时,在“服务部署配置”页面中,确保“路由器项目”与 EJB 项目处于同一“企业归档”(EAR)中。否则,您将不能调用 Web 服务。例如,如果使用 WebSphere 5.0.2 运行时,则当您尝试调用 Web 服务时,将产生以下错误:

找不到 Webservices 引擎。

4.34 使用命令行创建 EJB Web 服务或 EJB 框架

4.35 Web 服务备忘单

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

对于 IBM Soap:

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

对于 Apache Axis 或 WebSphere 5.0.2 运行时

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

如果要导入您自己的 wsdl 文件,则请确保按照上面所述的那样根据所选择的运行时正确设置了位置。

返回到主自述文件