房屋贷款BPEL实例详解
http://tech.ddvip.com 2008年01月05日 社区交流
本文详细介绍房屋贷款BPEL实例详解
接口:Bank;
接口操作:getLoanQuote;
输入消息为如下树状结构;
getLoanQuoteRequest
|――housenumber(int)
l 输出消息为如下的树状结构:
getHouseNumberResponse
|――rate (double)
|――firstpaidratio (double)
此外,BPEL需要引入该WSDL,并定义该服务为合作伙伴,所以还需要在此加入合作伙伴定义:
<plnk:partnerLinkType name="BankPL">
<plnk:role name="BankService" portType="tns:Bank" />
</plnk:partnerLinkType>
例程3显示了bank.wsdl的内容。
例程3 bank.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<definitions targetNamespace="urn:sample:soa:bank"
xmlns:tns="urn:sample:soa:bank"
xmlns:typens="urn:sample:soa:bank:types"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
<types>
<xsd:schema
targetNamespace="urn:sample:soa:bank:types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="getLoanQuoteRequest">
<xsd:sequence>
<xsd:element name="housenumber" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="getLoanQuoteResponse">
<xsd:sequence>
<xsd:element name="rate" type="xsd:double" />
<xsd:element name="firstpaidratio" type="xsd:double" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<message name="getLoanQuoteRequest">
<part name="payload" type="typens:getLoanQuoteRequest" />
</message>
<message name="getLoanQuoteResponse">
<part name="payload" type="typens:getLoanQuoteResponse" />
</message>
<portType name="Bank">
<operation name="getLoanQuote">
<input message="tns:getLoanQuoteRequest" />
<output message="tns:getLoanQuoteResponse" />
</operation>
</portType>
<plnk:partnerLinkType name="BankPL">
<plnk:role name="BankService" portType="tns:Bank" />
</plnk:partnerLinkType>
</definitions>
定义合作伙伴的链接
因为本例需要调用5个外部服务Web Servcie,每个外部服务有一个接口(portType),所以总共需要定义5个合作伙伴,它们的分别为HouseLoanBroker 、Bank1、Bank2、Bank3、Bank4。
责编:豆豆技术应用