标题: 利用 Apache Synapse 模拟 Web 服务(一) [打印本页] 作者: pengchao 时间: 2010-11-18 13:02 标题: 利用 Apache Synapse 模拟 Web 服务(一) 什么是模拟 Web 服务,我为什么要使用它们?
在您的日常工作中,您可能会遇到以下四种情形:
您的上司要求您编写一个依赖于一个或多个远程 Web 服务的程序。这些 Web 服务可以在生产服务器中运行,但在测试服务器中可能不可用。
对于第三方服务,您甚至无权访问代码或二进制文件。因此,您必须从头开始组装一些模拟服务来测试您的代码。可能的情景是,
您没有针对生产服务器通过预订和稍后取消预订测试您已对旅馆预订系统所做的错误修复。或者说您是否打算做这些工作?
您也许正在家中、路上或飞行途中办公,并且您需要一整套脱机运行的 Web 服务,以便能够尝试您对订购处理系统所做的最新修改。
此系统通过目录服务检查产品并通过订购处理服务下订单。
您希望创建一个脱机演示,但是又不能确定是否可以访问远程 Web 服务并且该服务是否始终可以运行。您需要确保,
当潜在客户坐在您面前时,Web 服务调用能够正确响应——即无连接超时意外。
您可能需要模拟不同的情形。如果出现服务响应错误,或者出现意外响应,情况会是怎么样?可能很难获得您希望从托管的测试服务获得的准确响应。
在投入生产两周之后,您的程序可能尚未针对 rooms not available 错误响应进行过测试,直到出现了此问题。
在所有这些情形中,您可以通过创建假 Web 服务(即模拟 Web 服务)模仿实际 Web 服务的行为来解决这些问题。
模拟 Web 服务具有与实际 Web 服务相同的界面和行为。在开发和测试期间,您可以将实际的 Web 服务端点与模拟 Web
服务端点进行交换。这可以让您对外部 Web 服务调用验证请求消息并传回必需的响应消息。
Apache Synapse 解决方案
有关将 Apache Synapse 用于模拟 Web 服务的好处是,当解决此任务中的企业集成问题时,您可以应用使用 ESB
时所获得的相同技能和方法,而无需学习和投资其他工具。您可以使用可用的工具、脚本语言、样式表甚至 Java 代码,以您希望的方式转换和处理这些响应。