本主题介绍如何从 WSDL 或 XML 模式中创建虚拟资产。
章节目录:
概要
Virtualize 可以通过分析服务的定义文件为服务构造虚拟资产。它自动为 WSDL 或 XML 模式中定义的操作和错误消息生成消息响应器,并用适当的消息填充这些工具。
如果要虚拟化的服务不可用于实时录制,而您拥有访问描述它的定义文件的权限,则这一点尤其有用。
虚拟化定义文件中的应用程序行为中涉及两个主要步骤:
- 从该定义文件中创建消息响应器。
- 对那些消息响应器进行部署。
从定义文件中创建消息响应器
若要自动从 WSDL 或 XML 模式文件创建消息响应器,请完成以下操作:
- 在一个可用的 project/.pva/Responder 套件创建向导中选择 SOA> WSDL 或 SOA> XML 模式选项。
- 有关访问该向导的详情,请参阅添加项目、虚拟资产和响应器套件。
- 完成 WSDL/XML 模式向导。请确保指定适当的 WSDL 或 XML 模式位置。
然后,Virtualize 将为定义的操作和错误消息创建消息响应器。然后可以使用可用控件指定响应消息。有关审查和自定义所创建工具中的选项的更多详情,请参阅消息响应器概要。
提示
在使用模式时,最好有一个与您正在配置的响应消息相关的示例请求消息。将此示例请求粘贴到选项> 请求模板> 请求消息模板区域(在字面量视图中)。这使得配置响应器和数据源关联更加容易。
部署虚拟资产
如果直接在 VirtualAssets 项目中创建 .pva,则它将自动部署。否则,部署虚拟资产最简单的方式是将包含的 .pva 文件复制到 VirtualAssets 项目中。
或者,可以右键点击 Virtualize 服务器视图的本地机器节点,选择添加虚拟资产,指定包括要部署的虚拟资产的 .pva 文件,然后点击完成。完成向导后,Virtualize 将自动复制 .pva 文件到 VirtualAssets 项目中。
有关部署过程和选项的详情说明,请参阅部署虚拟资产。
自定义虚拟资产
有关如何自定义消息响应器行为的详情,请参阅消息响应器概要。
检查和定制 SOAP 错误消息
如果您从 WSDL 创建虚拟资产,Virtualize 将为 WSDL 操作定义的任何自定义 SOAP 错误响应生成消息响应器,以及单个通用错误响应,但没有在 detail/Detail 元素中指定类型(即模式“xsd:any”类型)。
可以在消息响应器中的响应选项卡查看和定制这些 WSDL 错误消息。若要查看特定的错误消息,请从操作中选择。
不同 SOAP 版本的 SOAP 错误不同;因此,如果更改 SOAP 版本(在选项 > SOAP 版本下或在 Virtualize 首选项中),SOAP 错误格式也会改变。
SOAP 1.2 示例
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <Fault xmlns="http://schemas.xmlsoap.org/soap/envelope/"> <faultcode xmlns=""></faultcode> <faultstring xmlns=""></faultstring> <detail xmlns=""> <ns1:exception xmlns:ns1="http://www.themindelectric.com/exceptions/"></ns1:exception> </detail> </Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
SOAP 1.1 示例
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <confirmResponse xmlns="http://www.parasoft.com/wsdl/store-01/"> <Result>true</Result> </confirmResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
视频教程:从 WSDL 中创建虚拟资产
本视频描述如何从 WSDL 服务描述创建虚拟资产。