IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  WebSphere  >

利用IBM的工具和技术开发、部署 Web 服务: 第四部分

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码


级别: 初级

Greg Flurry (flurry@us.ibm.com), STSM, IBM Emerging Technologies Group, IBM Austin

2001 年 12 月 01 日

该系列教程将介绍如何利用IBM所提供的工具和技术来开发和部署基于 Web 服务的应用。文章着重介绍如何使用IBM WebSphere Studio Application Developer开发和测试 Web 服务和 Web 应用,如何在IBM WebSphere 应用服务器上部署开发好的 Web 服务,以及如何在IBM WebSphere UDDI注册中心中发布和寻找 Web 服务。

© 2001 国际商业机器有限公司。版权所有。

该系列教程将介绍如何利用IBM所提供的工具和技术来开发和部署基于 Web 服务的应用。文章着重介绍如何使用IBM WebSphere Studio Application Developer开发和测试 Web 服务和 Web 应用,如何在IBM WebSphere 应用服务器上部署开发好的 Web 服务,以及如何在IBM WebSphere UDDI注册中心中发布和寻找 Web 服务。

简介

该系列教程的第一部分(参阅 参考资料部分)向我们展示了如何利用 WebSphere Studio Application Developer 来开发 Web 服务以及如何对 Web 服务进行单元测试。 该系列教程的第二部分,介绍了如何利用 Application Developer 向 WebSphere UDDI 注册中心预览版发布 Web 服务,使该 Web 服务能够为用户所利用。第二部分还说明了如何在 UDDI 注册中心中查找一个 Web 服务,以及利用Application Developer 创建已发布的 Web 服务的 client。本文是该系列教程的第四部分,也是最后一部分,将介绍如何将开发完成的 Web 服务部署到 WebSphere 应用服务器4.0版的投产环境中,并且利用 Web 服务的投产版本来运行这个应用。





回页首


WebSphere 应用服务器4.0版

WebSphere 应用服务器4.0版是一个完全支持 J2EE 规范的 Web 应用服务器。它拥有对应用 Web 服务的基本技术的内置支持。这些技术包括 XML, SOAp, WSDL 和 UDDI。WebSphere 应用服务器4.0版通过将标准的 Apache SOAp 部署机制集成到基于 J2EE EAR 的应用部署模型中,极大的简化了在应用服务器上部署 Web 服务的步骤。

从基本上讲,WebSphere 应用服务器4.0版随同一个预先部署好的 Web 服务的注册中心,向每一个企业应用,内嵌基于 servlet 的与 Apache SOAp 引擎相连的网关。你还可以通过以一种新的 Web 模块(WAR 文件)向企业应用存档添加 WSDL 文档来提供对描述 Web 服务的 WSDL 文档的支持。企业应用部署描述文件可以被修改,使得 Web 服务可以通过 SOAp 网关被访问到。





回页首


WebSphere Studio Application Developer

WebSphere Studio Application Developer 向应用程序开发人员提供了丰富的功能,其中包括 Web 应用的开发和测试、XML的开发和测试,以及 Web 服务的开发和测试(也是该系列教程的重点)。 本文作为该系列教程的第四部分,重点在于 Application Developer 所生成的 J2EE 企业存档文件。Application Developer 的 EAR 文件包含了为了部署在 WebSphere 应用服务器4.0版上所必须满足的需要而制定的 Web 服务。





回页首


部署 Web 服务

本文认为你打算向一个 WebSphere 应用服务器4.0版的投产环境中部署一个 Web 服务,而这个环境中已经包括了部署好的 J2EE 应用。如果不是这样的话,Application Developer 也提供了一种极其简便的部署 Web 服务(或者任何由 Application Developer 开发的 J2EE 应用)的方法。这种方法依赖于 Application Developer 定义应用服务器4.0版投产环境为 “远程”应用服务器然后把应用部署在远程服务器上面的能力。如果想了解更多的信息,请参阅 Application Developer 的在线帮助文件。

基本上,部署 Web 服务需要两个步骤:

  1. 从 Application Developer 导出 Web 服务。
  2. 在应用服务器4.0版中安装应用。

导出 Web 服务

Application Developer 为每一个 Web project 都维护了一个 EAR 文件,所以从机理上讲,导出在第一部分创建好的 WeatherForecast Web 服务是相当简单的。但是,还有其它的一些方面需要考虑。首先,为企业应用添加描述应该是很有益处的。在 Application Developer 中打开 J2EE perspective,展开 Enterprise Applications,然后你会看到我们在本系列教程的前三部分创建好的应用。请参照图1所示。


图1.Application Developer 中的 J2EE perspective
J2EE perspective in Application Developer

双击 WForecastEAR应用,你将看到如图2所示的应用编辑器。


图2. 应用编辑器
The application editor

你可以在 Application description域中添加适当的描述。

下一个需要考虑的或许更微妙些。还记得 Application Developer 从 JavaBean 创建 Web 服务的时候,还创建了一个 proxy 和用来测试这个 Web 服务的一套 JSp 文件,所有的这些都包含在一个 EAR 模块中。虽然这些构件可以从这个 EAR 模块中删除掉,但是它们在把这个 Web 服务安装到应用服务器4.0版以后的测试阶段是很有帮助的。这里有一个关键的环节。Application Developer 的内置 Web 服务器被设置监听8080端口,这么做的目的是不影响投产环境中 Web 服务器,它在默认情况下监听的是80端口。由 Application Developer 生成的 proxy 会把 Web 服务的 URL 设置为 http://localhost:8080/WForecast/servlet/rpcrouter。所以当把 Web 服务部署到应用服务器4.0版中的时候,proxy 不能够与 Web 服务建立联系(除非投产环境中的 Web 服务器碰巧也是监听8080端口)。

为了解决这个问题,在 Web project perspective 的导航视图中展开 WForecast/source/proxy/soap/forecast ,然后打开 WeatherForecastproxy.java . 将代码的第16行从

private String stringURL = "http://localhost:8080/WForecast/servlet/rpcrouter";

改为

private String stringURL = "http://localhost:80/WForecast/servlet/rpcrouter";

然后保存这个文件。

同样的问题还涉及到描述该服务的 WSDL 文件。 “binding” 和 “service” 文件都引用8080端口。你需要将它们改为80端口。一旦这些改动完成,这个应用就可以导出了。

要导出这个 Web project,在 Web project perspective 的导航视图中选择 WForecastEAR,然后选择 File => Export。在 Export 对话框中,选择 EAR file然后点击 Next。在 EAR Export 对话框中,确认导出的资源文件为 WForecastEAR,选择这个 EAR 文件的到出路径后,点击 Finish。Application Developer 将会把 EAR 文件导出到指定的位置。


图3. EAR Export 对话框
The EAR Export dialog box

将应用安装到 WebSphere 应用服务器4.0版中

本文将对 WebSphere 应用服务器 Advanced Single Server Edition,4.0版的适当步骤进行介绍。这些步骤可能会因为不同的版本而有所不同。

要把 Web 服务安装到 WebSphere 应用服务器4.0版中,你首先需要启动应用服务器,然后启动 Administrator's Console,并且登录。在 Console 的左侧面板中,展开 Nodes并选择 Enterprise Applications。然后在右侧的面板中选择 Install


图4. WebSphere 应用服务器4.0版
WebSphere Application Server 4.0 window

在 Console 的 Application Installation 向导的第一个页面中的 path域里输入 WForecastEAR.ear 文件的路径;它应当和从 Application Developer 中导出 EAR 文件的路径相匹配。然后点击 Next。在接下来的页面中,接受默认的设置,并且点击 Next,然后点击 Finish。WebSphere 应用服务器将会自动安装 Web 服务的 EAR 文件。随后,你将看到如图5所示的画面。


图5. WForecastEAR.ear 文件已经添加到企业应用的列表中
The WForecastEAR.ear file is now added to the Enterprise Applications list

一定要选择 plug-in configuration needs to be regenerated选项,因为它将让 WebSphere 应用服务器更新 HTTp 服务的设置,使对 Web 服务 URL 的请求发送到应用服务器中进行处理。在接下来的页面中,点击 Generate。当更新结束后,你会再一次看到上图的页面。现在选择 Configuration needs to be saved。在随后的页面中,点击 OK

停止 WebSphere 应用服务器和 HTTp 服务器。然后重新启动 HTTp 服务器和应用服务器。这时,Web 服务已经就绪了。





回页首


测试 Web 服务

现在,Web 服务已经安装到了 WebSphere 应用服务器的投产环境中,图6显示了如下的架构。


图6. Web 服务的架构
The Web service architecture

由于 sample client 作为企业应用的一部分也被安装到了环境中,所以你可以像在 Application Developer 的 WebSphere 的示环境中那样利用它对 Web 服务进行测试。让你的浏览器指向如下的 URL: http://localhost/WForecast/sample/WeatherForecast/TestClient.jsp.

你将会看到如图7所示的画面,这和第一部分中的测试画面非常相像。


图7. 浏览器已经指向 TestClient.jsp
Web browser pointed to TestClient.jsp

现在,在 Methods 面板上选择 getForecast,在 State域中输入 TX,在 City域中输入 Austin。然后选择 Invoke。你将看到如图8所示的页面。


图8. 点击 Invoke 后浏览器中的结果
Web browser result after clicking Invoke




回页首


用新部署的 Web 服务测试 Web 应用

既然 Web 服务已经部署并且运行于 WebSphere 应用服务器的投产环境中了,与部署于Application Developer 的 WebSphere 测试环境中的 Web 服务相比,我们会对在第三部分创建好的调用这个 Web 服务的 Web 应用更加感兴趣些。图9显示了 Web 服务的架构。


图9. Web 服务的架构
The Web service architecture

我们需要把 WFClient1 Web project 做一个备份。创建一个名为 WFClient2的 Web projectdon't。别忘了把 soap.jarxerces.jar 添加到 Java Build path 中。这些操作在该系列教程的第一部分中已经描述过。在 WFClient1 Web project 中,把 source/helpersource/proxywebApplication/forecast.jsp 拷贝到 WFClient2 项目中。现在关闭 WFClient1 Web project (点击右键,然后选择 Close project)。

不幸的是你不能够直接运行 WFClient2 并且期待它能够调用部署在 WebSphere 应用服务器中的 Web 服务。WFClient1 Web project 调用的是部署在 Application Developer 的内置 WebSphere 运行时中的 Web 服务。正如我前面所说的那样,Web 服务的 proxy 的备份 WFClient2 所使用的 Web 服务的 URL 引用的是8080端口,而不是80。最简单的办法就是如同上面所介绍的那样编辑现有的 proxy,让它使用80端口。

对 proxy 的编辑完成以后,在 WFClient2 项目中运行 forecast.jsp 。当 JSp 被完全编译以后,你可以看到如下的结果,它和第3部分中的页面非常相似。


图10. forecast.jsp 编译后浏览器中的结果
The results as seen in the browser after forecast.jsp is compiled

你可以选择一个州和城市。图11显示了当选择 Boston, MA 以后的结果。


图11. 选择 Boston, MA 以后浏览器中的结果。
The results displayed in the browser if you select Boston, MA




回页首


总结

本文介绍了利用 WebSphere Studio Application Developer 导出已经在 Application Developer 环境中开发测试完成的 Web 服务的必要步骤,并且展示了如何将 Web 服务部署到 WebSphere 应用服务器4.0版的投产环境中进行测试。最后还介绍了如何从一个运行于 Application Developer 中的应用去调用这个部署好的 Web 服务。Application Developer 和 应用服务器4.0版的完美结合自动地完成这一流程中的许多步骤,从而大大简化了开发流程,使创建和测试 Web 服务变得十分简单。






回页首


下载

名字大小下载方法
workspace.zip10 KBHTTP
关于下载方法的信息


参考资料

  • 该系列教程的 第一部分描述了如何利用 Application Developer 创建一个 Web 服务。

  • 该系列教程的 第二部分介绍了如何利用 Application Developer 来发布和导入一个 Web 服务。

  • 该系列教程的 第三部分介绍了如何利用 Web 服务来创建一个应用。

  • IBM developerWorks 教程, 《创建一个完整的 Web 服务》,提供了有关 Web 服务范例的解释,并且讨论了本文提到的工具的早期版本。


关于作者

Greg Flurry 是一个 STSM,目前在 IBM 的新兴技术组中工作。他的主要责任就是促进 IBM 的电子商务技术,特别是 IBM 的Web 服务技术。你可以通过 flurry@us.ibm.com和他联系。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款