ActiveBpel部署運行BPEL流程實例

    本文接收使用ActiveBpel開發,部署和運行BPEL流程實例。
    本文的例子工程和服務工程請見附件。
1. 安裝ActiveBpel5.0.2
    要安裝ActiveBpel5.0.2,須要先安裝JDK1.5,Tomcat。注意這裏是JDK1.5版本的,ActiveBpel5.0.2不支持JDK1.5以上的版本。
    (1) 安裝JDK1.5
    安裝jdk後設置JAVA_HOME= C:\Program Files\Java\jdk1.6.0_07,這是個人jdk的安裝目錄。
    (2) 安裝Tomcat5.5.27
    具體的安裝過程這裏就再也不敘述,安裝完成後,設置環境變量CATALINA_HOME= E:\apache-tomcat-5.5.27,這是個人安裝目錄。
    (3) 安裝ActiveBpel5.0.2
    設置完成CATALINA_HOME環境變量後,就能夠安裝ActiveBpel5了,解壓rar包後安裝目錄下有install.bat,運行這個文件,便可安裝成功。
2. 設計BPEL流程
    設計BPEL流程須要安裝BPEL流程設計工具,本文用到的BPEL設計工具是ActiveBpel Designer。
    本文開發一個簡單的流程實例,該Bpel流程只調用一個簡單的echo服務,該服務輸入一個字符串,返回的結果是一樣的一個字符串。所以整個Bpel流程的結果也是一個這樣的字符串。這個echo服務是mule開發的服務,工程名稱echoService,工程見壓縮包。
    服務實現代碼很簡單,以下。
package cn.xidian.repace.zhaolong;
public class EchoImp implements InterfaceEcho{
         public String echo(String str){
                 return str;
        }
}

    要開發BPEL流程,須要有相關的WSDL文件,該Bpel工程用到兩個wsdl文件。一個是Bpel文件自己的wsdl文件BpelEchoTest.wsdl,一個是被調用服務的wsdl文件EchoTest.wsdl。
    Bpel自己的wsdl文件BpelEchoTest.wsdl以下。
<? xml version ="1.0" encoding ="UTF-8" ?>
< wsdl:definitions targetNamespace ="http://zhaolong.repace.xidian.cn" xmlns:impl ="http://zhaolong.repace.xidian.cn" xmlns:bpws ="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:intf ="http://zhaolong.repace.xidian.cn" xmlns:wsdlsoap ="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:apachesoap ="http://xml.apache.org/xml-soap" xmlns:soapenc ="http://schemas.xmlsoap.org/soap/encoding/" xmlns:plnk ="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:xsd ="http://www.w3.org/2001/XMLSchema" xmlns:wsdl ="http://schemas.xmlsoap.org/wsdl/" xmlns ="http://schemas.xmlsoap.org/wsdl/" >
     < wsdl:message name ="bpelResponse" >
         < wsdl:part name ="bpelReturn" type ="xsd:string" />
     </ wsdl:message >
     < wsdl:message name ="bpelRequest" >
         < wsdl:part name ="in0" type ="xsd:string" />
     </ wsdl:message >
     < wsdl:portType name ="BpelProxy0" >
         < wsdl:operation name ="bpel" parameterOrder ="in0" >
             < wsdl:input name ="bpelRequest" message ="impl:bpelRequest" />
             < wsdl:output name ="bpelResponse" message ="impl:bpelResponse" />
         </ wsdl:operation >
     </ wsdl:portType >
     < wsdl:binding name ="bpelTestSoapBinding" type ="impl:BpelProxy0" >
         < wsdlsoap:binding style ="rpc" transport ="http://schemas.xmlsoap.org/soap/http" xmlns:wsdlsoap ="http://schemas.xmlsoap.org/wsdl/soap/" />
         < wsdl:operation name ="bpel" >
         < wsdlsoap:operation soapAction ="" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" />
             < wsdl:input name ="bpelRequest" >
         < wsdlsoap:body encodingStyle ="http://schemas.xmlsoap.org/soap/encoding/" namespace ="http://zhaolong.repace.xidian.cn" use ="encoded" xmlns:wsdlsoap ="http://schemas.xmlsoap.org/wsdl/soap/" />
             </ wsdl:input >
             < wsdl:output name ="bpelResponse" >
         < wsdlsoap:body encodingStyle ="http://schemas.xmlsoap.org/soap/encoding/" namespace ="http://zhaolong.repace.xidian.cn" use ="encoded" xmlns:wsdlsoap ="http://schemas.xmlsoap.org/wsdl/soap/" />
             </ wsdl:output >
         </ wsdl:operation >
     </ wsdl:binding >
     < wsdl:service name ="bpelTest" >
         < wsdl:port name ="bpelTest" binding ="impl:bpelTestSoapBinding" >
         < wsdlsoap:address location ="http://202.117.118.183:33002/services/bpelTest" xmlns:wsdlsoap ="http://schemas.xmlsoap.org/wsdl/soap/" />
         </ wsdl:port >
     </ wsdl:service >
< plnk:partnerLinkType name ="MyBpelPLT" xmlns:plnk ="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" >
     < plnk:role name ="bpel" >
             < plnk:portType name ="impl:BpelProxy0" />
     </ plnk:role >
</ plnk:partnerLinkType >
</ wsdl:definitions >

    開發好echoService mule服務後,運行該服務,在瀏覽器輸入服務地址,獲取wsdl文件,另存爲EchoTest.wsdl文件。
    使用ActiveBpel Designer開發流程,工程名是TestBpel,bpel文件名是mybpel.bpel,圖形以下所示。

    mybpel.bpel代碼以下所示。

<? xml version ="1.0" encoding ="UTF-8" ?>
<!--
BPEL Process Definition
Edited using ActiveBPEL(tm) Designer Version 2.1.0 (http://www.active-endpoints.com)
-->
< process xmlns ="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpws ="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ns1 ="http://zhaolong.repace.xidian.cn" xmlns:xsd ="http://www.w3.org/2001/XMLSchema" name ="mybpel" suppressJoinFailure ="yes" targetNamespace ="http://mybpel" >
     < partnerLinks >
             < partnerLink myRole ="bpel" name ="MyBpelPLT" partnerLinkType ="ns1:MyBpelPLT" />
             < partnerLink name ="MyEchoPLT" partnerLinkType ="ns1:MyEchoPLT" partnerRole ="echo1" />
     </ partnerLinks >
     < variables >
             < variable messageType ="ns1:bpelRequest" name ="bpelRequest" />
             < variable messageType ="ns1:bpelResponse" name ="bpelResponse" />
             < variable messageType ="ns1:echoRequest" name ="echoRequest" />
             < variable messageType ="ns1:echoResponse" name ="echoResponse" />
     </ variables >
     < sequence >
             < receive createInstance ="yes" operation ="bpel" partnerLink ="MyBpelPLT" portType ="ns1:BpelProxy0" variable ="bpelRequest" />
             < assign >
                 < copy >
                         < from part ="in0" variable ="bpelRequest" />
                         < to part ="in0" variable ="echoRequest" />
                 </ copy >
             </ assign >
             < invoke inputVariable ="echoRequest" operation ="echo" outputVariable ="echoResponse" partnerLink ="MyEchoPLT" portType ="ns1:EchoProxy0" />
             < assign >
                 < copy >
                         < from part ="echoReturn" variable ="echoResponse" />
                         < to part ="bpelReturn" variable ="bpelResponse" />
                 </ copy >
             </ assign >
             < reply operation ="bpel" partnerLink ="MyBpelPLT" portType ="ns1:BpelProxy0" variable ="bpelResponse" />
     </ sequence >
</ process >

3. 部署流程

    開發完成流程後就能夠部署流程了。選擇File/New/Deployment Descriptor,新建流程描述符,選擇該工程下的mybpel.bpel文件,點擊「下一步」。見到下圖,進行以下圖設置。

    而後將該工程export,生成一個bpr文件,文件名爲TestBpel.bpr,將該文件放到Tomcat目錄下的bpr文件夾下,這個文件夾是安裝activebpel生成的。
在瀏覽器中輸入http://localhost:8080/active-bpel/servlet/AxisServlet 便可查看到該流程服務的項,以下圖所示。

4. 運行流程
    部署完成流程後,就能夠運行了。運行有兩種方式,一種是代碼方式,一種是使用soup發送方式,發送soup消息給該流程,返回結果。
    第一種代碼方式是普通的方式,使用Axis2的服務調用方式調用bpel流程服務便可,這裏就再也不詳細描述,請見個人另外一篇文章: 使用Eclipse+Axis2構建Web Service應用(http://panpan.blog.51cto.com/489034/119204)。     第二種方式是使用soupui軟件,安裝好soupui軟件後,新建工程,輸入名稱和剛纔的bpel流程地址:http://localhost:8080/active-bpel/services/MyBpelPLTService?wsdl,輸入數據。把<in0 xsi:type="xsd:string">?</in0>處的?換爲任意一個字符串,右方就會輸出這個字符串。 運行成功。
相關文章
相關標籤/搜索