Hallo community,

I'm back know after few week of silence due that i muss finish some theoretical 
part of my work and that my notebook was defect. So it's a great pleasure to 
find all the community again.

The last time i post it was related to some issues with an process invocing a 
service. That examples didn't work. 

More than one beginners in JBPM need more examples after playing with the ATM 
and Hello business process included in the BPEL-Extension and need more 
examples for training. I had the same problem at my  beginning with the 
JBPM-extension. 

This Loan Approval Process can be used for training purpose by beginners and 
also advanced users because.  Advanced users can challenge them self by 
extending this simple Loanprocess by including an Assessor-Service, which first 
analyse the request depending on the creditamount like explained at : 
http://activebpel.org/docs/tutorial.html.

Know i have designed (adapted) a standart Loan Approval Process in BPEL which 
calls the Loan Approver Web Service and forward clients LoanRequests containing 
LoanRequester firstName, lastName and the credit amount;  I have already 
successfully deployed the Business process and the web service to jboss using 
the jbpm-Extension and every think work 100%. 


To my configuration: JBOss AS-4.0.1SP1, jbpm-bpel-1.0-alpha4, MYSQL-4.1 
java-1.5 (jdk+jre) Update 6, JWSDP-1,6 on Pentium 3, 600 MHZ,  Windows XP-SP2, 
256 MB.

I hope it's help some of you  !


Best regards

Bertrand Njipwo


My configuration Files:

loanapproval.bpel

<?xml version="1.0" encoding="UTF-8"?>
  | 
  | <process 
  | name="loanapproval" 
  | suppressJoinFailure="yes" 
  | targetNamespace="urn:samples:loanapproval"
  | xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"; 
  | xmlns:tns=  "urn:samples:loanapproval"
  | xmlns:loanapproval="urn:samples:loanapproval" 
  | xmlns:loanapprover="urn:samples:loanapprover" 
  | xmlns:xsd="http://www.w3.org/2001/XMLSchema";
  | xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"; 
  | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  | xsi:schemaLocation="http://schemas.xmlsoap.org/ws/2003/03/business-process/
  |                       
http://schemas.xmlsoap.org/ws/2003/03/business-process/";>
  | 
  | 
  | 
  |    <partnerLinks>
  |       <partnerLink name="LoanProcessing"   
partnerLinkType="loanapproval:LoanProcessingPLT" myRole="lender"/>
  |       <partnerLink name="Approving" 
partnerLinkType="loanapprover:ApprovingPLT" partnerRole="approver"/>
  |    </partnerLinks>
  |    <variables>
  |       <variable name="applyRequest"  
messageType="loanapproval:applyRequest"/>
  |       <variable name="applyResponse" 
messageType="loanapproval:applyResponse"/>
  |       <variable name="approveRequest"  
messageType="loanapprover:approveRequest"/>
  |       <variable name="approveResponse" 
messageType="loanapprover:approveResponse"/>
  |    </variables>
  |    <sequence>
  |       <receive createInstance="yes" name="LoanApplication" 
operation="apply" partnerLink="LoanProcessing" 
portType="loanapproval:LoanProcessPortType" variable="applyRequest"/>
  |       
  |       <!--assign name="AssignLoanInfo_forApproval">
  |          <copy>
  |             <from part="loanRequestParameters" 
query="/types:apply/types:LoanApplication/types:firstName" 
variable="applyRequest"/>
  |             <to part="firstName" variable="approveRequest"/>
  |          </copy>
  |          <copy>
  |             <from part="loanRequestParameters" 
query="/types:apply/types:LoanApplication/types:lastName" 
variable="applyRequest"/>
  |             <to part="lastName" variable="approveRequest"/>
  |          </copy>
  |          <copy>
  |             <from part="loanRequestParameters" 
query="/types:apply/types:LoanApplication/types:amount" 
variable="applyRequest"/>
  |             <to part="amount" variable="approveRequest"/>
  |          </copy>
  |       </assign-->
  |       
  |           <assign name="AssignLoanInfo_forApproval">
  |          <copy>
  |             <from variable="applyRequest" 
query="/loanRequestParameters/firstName" part="loanRequestParameters"/>
  |             <to variable="approveRequest"  part="firstName" />
  |          </copy>
  |          <copy>
  |             <from variable="applyRequest"   
query="/loanRequestParameters/lastName" part="loanRequestParameters"/>
  |             <to variable="approveRequest"   part="lastName"/>
  |          </copy>
  |          <copy>
  |             <from variable="applyRequest" 
query="/loanRequestParameters/amount"  part="loanRequestParameters"/>
  |             <to variable="approveRequest"   part="amount"/>
  |          </copy>
  |       </assign>
  |       
  |       
  |       <invoke inputVariable="approveRequest" name="ApproveLoan" 
operation="approve" outputVariable="approveResponse" partnerLink="Approving" 
portType="loanapprover:LoanApproverPortType"/>
  |       <assign name="AssignLoanApprovalDecision">
  |          <!--copy>
  |             <from part="approved" variable="approveResponse"/>
  |             <to part="loanResponse" 
query="/types:applyResponse/types:ApprovalDecision/types:approved" 
variable="applyResponse"/>
  |          </copy-->
  |          
  |          <copy>
  |             <from variable="approveResponse"  part="approved"/>
  |             <to     variable="applyResponse" query="/loanResponse/approved" 
 part="loanResponse"/>
  |          </copy>
  |          
  |       </assign>
  |       <reply name="ApprovalDecision" operation="apply" 
partnerLink="LoanProcessing" portType="loanapproval:LoanProcessPortType" 
variable="applyResponse"/>
  |    </sequence>
  | </process>
  | 

loanapproval.wsdl:

<?xml version="1.0" encoding="UTF-8"?>
  | <definitions xmlns="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:tns="urn:samples:loanapproval" 
xmlns:loanapproval="urn:samples:loanapproval" 
xmlns:loanapprover="urn:samples:loanapprover" 
xmlns:types="urn:samples:loanapprovalTypes" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"; 
xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"; 
targetNamespace="urn:samples:loanapproval">
  |     <import namespace="urn:samples:loanapprover" 
location="interface/loanapprover.wsdl"/>
  |     <types/>
  |     <types>
  |             <schema targetNamespace="urn:samples:loanapprovalTypes" 
xmlns="http://www.w3.org/2001/XMLSchema";>
  |                     <!--element name="applyLoanRequest" 
type="types:LoanApplicationType"/>
  |                     <element name="applyResponse" 
type="types:ApprovalDecisionType"/-->
  |                     <element name="loanProcessFault" 
type="types:loanProcessFaultType"/>
  |                     <complexType name="loanApplicationType">
  |                             <sequence>
  |                                     <element name="firstName" 
type="string"/>
  |                                     <element name="lastName" type="string"/>
  |                                     <element name="amount" type="float"/>
  |                             </sequence>
  |                     </complexType>
  |                     <complexType name="approvalDecisionType">
  |                             <sequence>
  |                                     <element name="approved" 
type="boolean"/>
  |                             </sequence>
  |                     </complexType>
  |                     <complexType name="loanProcessFaultType">
  |                             <sequence>
  |                                     <element name="ErrorCode" type="int"/>
  |                                     <element name="ErrorMessage" 
type="string"/>
  |                             </sequence>
  |                     </complexType>
  |             </schema>
  |     </types>
  |     <message name="applyRequest">
  |             <part name="loanRequestParameters" 
type="types:loanApplicationType"/>
  |     </message>
  |     <message name="applyResponse">
  |             <part name="loanResponse" type="types:approvalDecisionType"/>
  |     </message>
  |     <message name="applyLoanProcessFault">
  |             <part name="loanFault" element="types:loanProcessFault"/>
  |     </message>
  |     <portType name="LoanProcessPortType">
  |             <operation name="apply">
  |                     <input message="tns:applyRequest"/>
  |                     <output message="tns:applyResponse"/>
  |                     <fault name="LoanProcessFault" 
message="tns:applyLoanProcessFault"/>
  |             </operation>
  |     </portType>
  |     <plt:partnerLinkType name="LoanProcessingPLT">
  |             <plt:role name="lender">
  |                     <plt:portType name="tns:LoanProcessPortType"/>
  |             </plt:role>
  |     </plt:partnerLinkType>
  | </definitions>
  | 

approver.wsdl:


  | <?xml version="1.0" encoding="UTF-8"?>
  | <definitions 
  | xmlns="http://schemas.xmlsoap.org/wsdl/"; 
  | xmlns:tns="urn:samples:loanapprover" 
  | xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
  | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
  | xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"; 
  | targetNamespace="urn:samples:loanapprover" 
  | name="LoanApproverService">
  | 
  |     <message name="approveRequest">
  |             <part name="firstName" type="xsd:string"/>
  |             <part name="lastName" type="xsd:string"/>
  |             <part name="amount" type="xsd:float"/>
  |     </message>
  |     
  |     <message name="approveResponse">
  |             <part name="approved" type="xsd:boolean"/>
  |     </message>
  |     
  |     <portType name="LoanApproverPortType">
  |             <operation name="approve" parameterOrder="firstName lastName 
amount">
  |                     <input message="tns:approveRequest"/>
  |                     <output message="tns:approveResponse"/>
  |             </operation>
  |     </portType>
  |     
  |     <plt:partnerLinkType name="ApprovingPLT">
  |             <plt:role name="approver">
  |                     <plt:portType name="tns:LoanApproverPortType"/>
  |             </plt:role>
  |     </plt:partnerLinkType>
  | </definitions>
  | 

approver.svc.wsdl: 
<?xml version="1.0" encoding="UTF-8"?>
  | <definitions 
  | xmlns="http://schemas.xmlsoap.org/wsdl/"; 
  | xmlns:tns="urn:samples:loanapprover" 
  | xmlns:xsd="http://www.w3.org/2001/XMLSchema";
  |  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
  |  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
  |  targetNamespace="urn:samples:loanapprover" 
  |  si:schemaLocation="http://schemas.xmlsoap.org/wsdl/ 
  |                       http://schemas.xmlsoap.org/wsdl/";>
  |     <import namespace="urn:samples:loanapprover" 
location="loanapprover.wsdl"/>
  |     <binding name="LoanApproverSOAPBinding" type="tns:LoanApproverPortType">
  |             <soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
  |             <operation name="approve">
  |                     <soap:operation 
soapAction="urn:samples:loanapprover:approve"/>
  |                     <input>
  |                             <soap:body use="literal" 
namespace="urn:samples:loanapprover"/>
  |                     </input>
  |                     <output>
  |                             <soap:body use="literal" 
namespace="urn:samples:loanapprover"/>
  |                     </output>
  |             </operation>
  |     </binding>
  |     <service name="LoanApproverService">
  |             <port name="LoanApproverPort" 
binding="tns:LoanApproverSOAPBinding">
  |                     <soap:address location="REPLACE_WITH_ACTUAL_URI"/>
  |             </port>
  |     </service>
  | </definitions>
  | 

wscompile-cfg.xml: 

<?xml version="1.0" encoding="UTF-8"?>
  | <configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config";>
  |     <wsdl location="wsdl/service.wsdl" 
packageName="org.jbpm.bpel.tutorial.loanapproval">
  |             <namespaceMappingRegistry>
  |                     <namespaceMapping 
namespace="urn:samples:loanapprovalTypes" 
packageName="org.jbpm.bpel.tutorial.loanapproval.types"/>
  |             </namespaceMappingRegistry>
  |     </wsdl>
  | </configuration>
  | 

webservices.xml

<?xml version="1.0" encoding="UTF-8"?>
  | <webservices version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee";
  |  xmlns:impl="urn:samples:loanapproval" 
  |   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
  |                       
http://java.sun.com/xml/ns/j2ee/j2ee_web_services_1_1.xsd";>
  |   <webservice-description>
  |     <!-- descriptive name for the service -->
  |     <webservice-description-name>Loan Approval 
Service</webservice-description-name>
  |     <!-- WSDL implementation file (AUTO GENERATE FILE ) -->
  |     <!-- IMPLEMENTATIONDETAILS OF THE LOANAPPROVALSERVICE ARE SEPARED AND 
WILL BE GENERATED AUTOMATICALY BY THE GENERATE-SERVICE TOOL FOR THE WS4EE AND 
WRITE IN WEB-INF/wsdl/service.wsdl-->
  |     <wsdl-file>WEB-INF/wsdl/service.wsdl</wsdl-file>
  |     <!-- Java<->XML mapping file -->
  |     <jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
  | 
  |     <port-component>
  |       <!-- logical name for the port (unique within the module) -->
  |       <port-component-name>LoanProcessingPort</port-component-name>
  |       
  |     <!-- WSDL port element (in WSDL implementation file) -->
  |        <wsdl-port>impl:LoanProcessingPort</wsdl-port>
  |       
  |       <!-- service endpoint interface class -->
  |       
<service-endpoint-interface>org.jbpm.bpel.tutorial.loanapproval.LoanProcessPortType</service-endpoint-interface>
  |       
  |       <!-- associated servlet (in web-app [web.xml]  descriptor) -->
  |       <service-impl-bean>
  |         <servlet-link>LoanProcessingServlet</servlet-link>
  |       </service-impl-bean>
  | 
  |       <handler>
  |         <handler-name>LoanProcessingHandler</handler-name>
  |         <!-- handler class (in BPEL extension library) -->
  |         
<handler-class>org.jbpm.bpel.service.messager.PortHandler</handler-class>
  |         <init-param>
  |           <description>
  |             name of the port; should match the partner link name
  |           </description>
  |           <!-- WAS IST WENN MANN MEHR GENAU " PARTNERLINK IN DER 
PROCESS-BESCHREIBUNGSFILE HAT ? MUSS MAN HIER 2 SOLCHE ELEMENTE DEFINIEREN ? -->
  |           <param-name>portName</param-name>
  |           <param-value>LoanProcessing</param-value>
  |         </init-param>
  |         <init-param>
  |           <description>time to wait for response messages, in 
milliseconds</description>
  |           <param-name>responseTimeout</param-name>
  |           <param-value>60000</param-value>
  |         </init-param>
  |       </handler>
  |     </port-component>
  |   </webservice-description>
  | </webservices>
  | 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
  | <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee";
  |   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
  |                       http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";>
  |   <servlet>
  |     <servlet-name>LoanProcessingServlet</servlet-name>
  |     <!-- service implementation bean class -->
  |     
<servlet-class>org.jbpm.bpel.tutorial.loanapproval.LoanProcessPortType_Impl</servlet-class>
  |   </servlet>
  | 
  |   <servlet>
  |     <servlet-name>messagerServlet</servlet-name>
  |     
<servlet-class>org.jbpm.bpel.service.messager.MessagerServlet</servlet-class>
  |     <load-on-startup>1</load-on-startup>
  |   </servlet>
  |   <servlet-mapping>
  |     <servlet-name>LoanProcessingServlet</servlet-name>
  |     <url-pattern>/LoanProcessing</url-pattern>
  |   </servlet-mapping>
  |   
  |   <servlet-mapping>
  |     <servlet-name>messagerServlet</servlet-name>
  |     <url-pattern>/messager</url-pattern>
  |   </servlet-mapping>
  |   
  |   <resource-ref>
  |     <res-ref-name>jms/ConnectionFactory</res-ref-name>
  |     <res-type>javax.jms.ConnectionFactory</res-type>
  |     <res-auth>Container</res-auth>
  |     <res-sharing-scope>Shareable</res-sharing-scope>
  |   </resource-ref>
  |   
  |   <message-destination-ref>
  |     
<message-destination-ref-name>jms/LoanProcessingQueue</message-destination-ref-name><!--
 ADD NEW DESTION IN THE FILE.-->
  |     <message-destination-type>javax.jms.Queue</message-destination-type>
  |     <message-destination-usage>ConsumesProduces</message-destination-usage>
  |   </message-destination-ref>
  | </web-app>,

jboss-web.xml

<?xml version="1.0" encoding="UTF-8" ?>
  | <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN"
  |     "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd";>
  | <jboss-web>
  |   <resource-ref>
  |     <res-ref-name>jms/ConnectionFactory</res-ref-name>
  |     <jndi-name>java:ConnectionFactory</jndi-name>
  |   </resource-ref>
  | <message-destination-ref>
  |     
<message-destination-ref-name>jms/LoanProcessingQueue</message-destination-ref-name>
  |     <jndi-name>queue/loanApprovalQueue</jndi-name>
  |   </message-destination-ref>
  | </jboss-web>

bpel-application

<?xml version="1.0" encoding="UTF-8"?>
  |  <bpelApplication name="loanapproval" xmlns="http://jbpm.org/bpel";
  |   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |   xsi:schemaLocation="http://jbpm.org/bpel
  |                       http://jbpm.org/bpel/bpel_application_1_0.xsd";
  |   <partnerLinks>
  |     <!-- HIER WE HAVE TO ASSIGN A QUEUE TO CLIENTS BY ASSIGNING QUEUE TO 
THE CLIENT PARTNERLINK WICH NAME IS THE LoanProcessing -->
  |     
  |     <partnerLink name="LoanProcessing">
  |       <!-- name bound to the queue assigned to this partner link -->
  |       <myRole destination="jms/LoanProcessingQueue" />
  |     </partnerLink>
  |     <!-- AT THE OTHER END OF THE LOANAPPROVALPROCESS WE NEED TO BIND THE 
LOANAPPROVER WEB-SERVICE BY GIVING BINDINGINFORMATIONS FOR THIS SERVICE -->
  |     
  |     <partnerLink name="Approving">
  |       <partnerRole>
  |         <wsa:EndpointReference 
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing";>
  |           <wsa:Address>USE_ACTUAL_URI_FROM_CATALOG</wsa:Address>
  |           <wsa:ServiceName 
xmlns:loanapprover="urn:samples:loanapprover">loanapprover:LoanApproverService</wsa:ServiceName>
  |         </wsa:EndpointReference>
  |       </partnerRole>
  |     </partnerLink>
  |   </partnerLinks>
  |   
  |   <serviceCatalogs>
  |     <definitionCatalog>
  |       <definition 
location="http://localhost:8080/loanapprover/loanApproverPortType?wsdl"; />
  |     </definitionCatalog>
  |   </serviceCatalogs>
  | </bpelApplication>

jboss-client

<?xml version='1.0' encoding='UTF-8' ?>
  | <!DOCTYPE jboss-client PUBLIC "-//JBoss//DTD Application Client 4.0//EN"
  |    "http://www.jboss.org/j2ee/dtd/jboss-client_4_0.dtd";>
  | <jboss-client>
  |   <!-- JNDI name bound to client's environment context -->  
  |   <jndi-name>loanapproval-client</jndi-name>
  |   <service-ref>
  |       <!-- The service-ref element to configure IS DEFINED IN 
APPLICATION-CLIENT:XML -->
  |               <service-ref-name>service/Loanapproval</service-ref-name>
  |                  
<wsdl-override>http://localhost:8080/loanapproval/LoanProcessing?wsdl</wsdl-override>
  |   </service-ref>
  | </jboss-client>

application-client.xml

<?xml version="1.0" encoding="UTF-8"?>
  | <application-client version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee";
  |   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
  |                     
http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd";>
  |   <display-name>Loanapproval service client</display-name>
  |   <service-ref>
  |     <service-ref-name>service/Loanapproval</service-ref-name>
  |     <!-- service interface class -->
  |    
<service-interface>org.jbpm.bpel.tutorial.loanapproval.LoanApprovalService</service-interface>
  |     <!-- placeholder for published WSDL file -->
  |     <wsdl-file>USE_JBOSS_CLIENT_XML_OVERRIDE</wsdl-file>
  |     <!-- Java<->XML mapping file -->
  |     <jaxrpc-mapping-file>META-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>  
  
  |     <port-component-ref>
  |       
<service-endpoint-interface>org.jbpm.bpel.tutorial.loanapproval.LoanProcessPortType</service-endpoint-interface>
  |     </port-component-ref>   
  |   </service-ref>  
  | </application-client>

application-clientx.xml

<?xml version="1.0" encoding="UTF-8"?>
  |  <bpelDefinition location="loanapproval.bpel" xmlns="http://jbpm.org/bpel";
  |   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |   xsi:schemaLocation="http://jbpm.org/bpel
  |                       http://jbpm.org/bpel/bpel_definition_1_0.xsd";>
  |   <!-- makes WSDL interface elements available to the process -->
  |   <imports>  
  |        <wsdl namespace="urn:samples:loanapproval"  
location="loanapproval.wsdl"/>
  |    </imports>  
  | </bpelDefinition>

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3969206#3969206

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3969206
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to