| | | | | | | [文章信息] | | | 作者: | 不详 | | 时间: | 2005-04-11 | | 出处: | CNBLOG | | 责任编辑: | 方舟 | |
| [文章导读] | | | 本文将通过一些例子说明如何通过PHP 5 中新的 SOAP 扩展使用 Web 服务来访问 J2EE 应用程序 | |
| |
|
| | | |
|
|
|
|
|
Weather Forecast 应用程序
我们要从 PHP 中访问的 Web 服务是一个天气预报应用程序。这是 WebSphere Version 5.1 Application Developer 5.1.1 Web Services Handbook 中开发的示例应用程序。下载示例 Weather Forecast 应用程序,请参阅本文后面的下载部分。这本书设计了几种不同的场景,但我们只考虑一种,在该书中,这种场景称为“自下而上的开发,使用 HTTP 传输和 SOAP 消息从会话 EJB 生成 Web 服务”。在这里,自下而上的意思是说,Web 服务是围绕现有企业应用程序进行包装的。
图 1. 天气预报应用程序  | 图 1 中标出的 Weather Forecast 应用程序的主要组成包括:
预测天气的后台 WEATHER 数据库。天气预报中的信息包括:
风向,八个方位 风速,公里/小时 气温,摄氏度 天气状况:晴、有时阴、阴、雨、暴雨 日期
WeatherPredictor 类用于访问 WEATHER 数据库。如果数据库中没有适用于请求日期的预报,那么 WeatherPredictor 会随机生成天气预测(与实际的天气预报不同),并将它保存到数据库中。
业务逻辑由 WeatherForecastEJB 会话 bean 提供,并公开为 Web 服务,它提供三项操作:
getDayForecast 返回某一天的天气预报。
getForecast 返回某个时期的天气预报。
getTemperatures 返回某个时期的气温预测。
将这个会话 bean 部署为 Web 服务所需的所有元素都是由 WebSphere Studio Application Developer 的 Web 服务向导生成的,并且是作为 ItsoWebService2RouterWeb 项目生成的。路由器 servlet 是连接 SOAP 消息和 EJB 容器的桥梁,需要配置和部署路由器 servlet,通过 URL ItsoWebService2EJBRouterWeb/services/WeatherServiceEJB 来使 Weather 服务可用。WSDL 文档 itso.session.WeatherForecastEJB.wsdl 在 ItsoWebService2EJBRouterWeb/wsdl 目录中。
Java 客户机是这本书中开发的多个 Weather Service 客户机之一。ItsoWebService2EJBClient 项目中的 WeatherClientEJB 是一个简单的 Java servlet,调用 getForecast Web 服务操作。典型的运行结果如下所示:
 图 2. Java WeatherClient | 下一步是在 PHP 中建立等价的客户机功能。
阅读本文不需要自己运行这个例子,可以针对从 XMethods 网站选择的服务建立 PHP 客户机。
|
|
|
|
|
|
|
|