在测试 XForms 应用程序之前,应确保正确安装了必要的 JAR 文件,以便使用 JDBC type 4 驱动器连接到 DB2。
进入 WebSphere Application Server 的安装目录,检查是否存在以下文件:db2jcc.jar,db2jcc_license_cu.jar。 (例如,在这个例子中,我必须在 “C:\Program Files\IBM\SDP70\runtimes\base_v61\lib'” 目录下安装这些 JAR 文件。)
如果该目录下没有这些 JAR 文件,则复制这些 JAR 文件到该目录,并重新启动 WebSphere Application Server 系统服务器。
在使用前面步骤创建的 Web 服务运行 XForms 之前,还需要在同一个 WebSphere Application Server 上安装 SOAPForwarding servlet。本文的 下载 小节中提供了这个文件(SOAPResolution.war)。
这个步骤只是一个弥补措施,因为 Mozilla 的 XForms Add-on 目前不能进行有效的 SOAP 调用。如果 Mozilla XForms Add-on 以后的版本修复了这个缺陷,那么就不需要这个步骤。在撰写本文之际,使用 Firefox Xforms Version 0.7.0.1 的 Web 服务调用会丢失 SOAPAction 报头。SOAPForwarding servlet 只是添加这个必需的 SOAPAction 报头。
在 XformEAR 上单击右键,选择 Import > war file。
浏览文件系统,选择 SOAPResolution.war 文件。Web 项目的名称应该会自动填充,如下图所示。确认它被添加到已有的 XFormEAR 项目中。
图 7. SOAPResolution WAR

单击 Finish 导入该 servlet。
使用 RAD 内置的 Web Services explorer 测试 Web 服务
至此,您已经成功地部署并启动了应用程序,现在可以测试所部署的服务了。
在 RAD 中,在生成的 FormServices.wsdl 上单击右键,选择 Test with Web services explorer。
如下图所示,指定端点和正确的端口号,测试任何以 *AsString 结尾的方法。 。 在这个例子中,有 3 个以 *AsString 结尾的方法,这 3 个方法以转义字符串的形式返回 XML。大多数浏览器都偏爱转义字符串形式的 XML(< 而不是 “<” )。 但是,XForms 则偏爱实际的 XML 值。其它 3 个方法(没有 *AsString)在功能上与以 *AsString 结尾的方法相同,只不过这 3 个方法返回实际的 XML 数据。
图 8. 使用 Web services explorer 测试 *AsString 服务

![]()
使用 XForms 测试 XML Web 服务
启动 demo 附带的 XForms。
在 xmlcustomer.xhtml 文件上单击右键,选择 Open with Firefox。这个步骤假设您已经按照本文 先决条件 小节的要求安装了 XForms 插件。这时应该可以看到下面的屏幕截图所示的 XForm。
完成一些必要的工作,例如指定惟一的 “Id Val”,输入/修改名称,等等。
使用 xmlcustomer Form,在 Id Val 字段中指定一个惟一的 ID,并单击 Submit。
这里指定的 Id Val 在 DB2 中的 XMLCUSTOMER 表的 CID 列中应该是惟一的。
当单击 Submit 时,XForm 对 insertFormData 服务进行 Web 服务调用,将表单的用户数据以 XML 实例的形式插入到 DB2 中。
如果发生错误,或者没有反应,请参阅 “故障检修技巧” 小节,查找可能的原因和相应的建议。
图 9. 使用 xform 测试插入服务

如果没有发生错误,应该可以看到检索表单。指定 insert 语句中指定的 ID,单击 Retrieve。
这时,该 xform 对 retrieveFormData 服务进行 Web 服务调用,从 DB2 检索 XML 实例形式的用户数据,并将其映射到 xform。
图 10. 使用 xform 测试检索服务

结束语
您看到了如何在 DB2 pureXML 中按照自下而上的方法生成面向 XML 数据的 Web 服务。通过 HTTP Web 服务实现 SOAP,这些服务可以向 DB2 9 存储和检索 XML 数据。这些服务可以以转义字符串或实际 XML 的形式在线路上插入和检索 XML。可以根据特定需要修改 Java 源代码,任何方法都可以公开为 Web 服务。这些 Web 服务可以作为任何通过 HTTP 调用实现 SOAP 的客户机的端点,实现向数据库检索和存储数据。
关注此文的读者还看过: