[jboss-user] [JBoss jBPM] - BPEL Correlation & Eventhandling

naera do-not-reply at jboss.com
Fri Jul 18 09:02:08 EDT 2008


For my bachelor thesis I am working on the implementation of a specific BPEL Process and I am stuck since days with an CorrelationViolation.
I optain an CorrelationViolation when I invoke the openServiceCall operation. If I delete the whole Eventhandler part, the invoking of the openServiceCall isn't a problem at all, and the correlation worked with before with several recieve/return paires instead of event handler, but this won't serve the purpose.

Any kind of help would highly be appreciated.
Thanks


Environment:
AS: jboss-4.2.2.GA
BPEL Engine: jbpm-bpel-1.1.GA
OS: Windows XP Pro SP2

optained error
15:00:39,640 ERROR [StartListener] request delivery failed due to non-recoverable exception, giving up
  | org.jbpm.bpel.graph.exe.BpelFaultException: org.jbpm.bpel.graph.exe.FaultInstance at 1be6f3c[name={http://docs.oasis-open.org/wsbpel/2.0/process/executable}correlationViolation]
  |         at org.jbpm.bpel.integration.exe.CorrelationSetInstance.checkInitialized(CorrelationSetInstance.java:117)
  |         at org.jbpm.bpel.integration.exe.CorrelationSetInstance.getProperties(CorrelationSetInstance.java:92)
  |         at org.jbpm.bpel.integration.def.Correlations.getReceptionProperties(Correlations.java:72)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
  |         at org.jbpm.bpel.integration.def.Correlations_$$_javassist_43.getReceptionProperties(Correlations_$$_javassist_43.java)
  |         at org.jbpm.bpel.integration.jms.RequestListener.formatSelector(RequestListener.java:106)
  |         at org.jbpm.bpel.integration.jms.RequestListener.<init>(RequestListener.java:80)
  |         at org.jbpm.bpel.integration.jms.JmsIntegrationService.jmsReceive(JmsIntegrationService.java:80)
  |         at org.jbpm.bpel.integration.jms.JmsIntegrationService.receive(JmsIntegrationService.java:70)
  |         at org.jbpm.bpel.graph.exe.ScopeInstance.enableEvents(ScopeInstance.java:221)
  |         at org.jbpm.bpel.integration.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:144)
  |         at org.jbpm.bpel.integration.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:61)
  |         at org.jbpm.bpel.integration.def.ReceiveAction.initializeProcessInstance(ReceiveAction.java:87)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
  |         at org.jbpm.bpel.integration.def.ReceiveAction_$$_javassist_93.initializeProcessInstance(ReceiveAction_$$_javassist_93.java)
  |         at org.jbpm.bpel.integration.jms.StartListener.deliverRequest(StartListener.java:210)
  |         at org.jbpm.bpel.integration.jms.StartListener.onMessage(StartListener.java:168)
  |         at org.jboss.mq.SpyMessageConsumer.run(SpyMessageConsumer.java:682)
  |         at java.lang.Thread.run(Thread.java:595)
  | 


createServiceCall.bpel
<process
  |     name="createServiceCall"
  |     targetNamespace="http://coresystems.ch/bt/bpel/createServiceCall"
  |     xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
  |     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  |     xmlns:tns="http://coresystems.ch/bt/bpel/createServiceCall"
  |     xmlns:nswsdl="http://coresystems.ch/bt/wsdl/createServiceCall" xmlns:sxt="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace" xmlns:sxed="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor" xmlns:ns0="http://www.coresystems.ch/webservices" xmlns:ns1="http://coresystems.ch/bt/xsd/createServiceCall">
  | 
  |     <!-- IMPORTS OF WSDL FILES -->
  |     <import namespace="http://coresystems.ch/bt/wsdl/createServiceCall" location="createServiceCall.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
  | 
  |     <!-- PARTNER LINK DECLARATION -->
  |     <partnerLinks>
  |         <partnerLink name="ClientPartnerLink" partnerLinkType="nswsdl:ClientPartnerLink" myRole="customer"/>
  |     </partnerLinks>
  | 
  |     <!-- VARIABLE DECLARATIONS -->
  |     <variables>
  |         <variable name="businessPartnerID" type="xsd:string"/>
  |         <variable name="serviceCallID" type="xsd:string"/>
  |         <variable name="systemOrEquipIsChosen" type="xsd:boolean"/>
  |         <variable name="openServiceCallInput" messageType="nswsdl:openServiceRequestInMessage"/>
  |         <variable name="openServiceCallOutput" messageType="nswsdl:openServiceRequestOutMessage"/>
  |     </variables>
  | 
  |     <!-- PROCESS ITSELF -->
  |     <correlationSets>
  |         <correlationSet name="serviceCallCreation" properties="nswsdl:requestID"/>
  |     </correlationSets>
  |         <eventHandlers>
  |             <onEvent partnerLink="ClientPartnerLink" operation="getSystems" portType="nswsdl:openServiceRequest" variable="getSystemsIn" messageType="nswsdl:getSystemsOperationRequest">
  |                 <correlations>
  |                     <correlation set="serviceCallCreation" initiate="no"/>
  |                 </correlations>
  |                 <scope name="Scope1">
  |                     <variables>
  |                         <variable name="getSystemsOut" messageType="nswsdl:getSystemsOperationResponse"/>
  |                         <variable name="getSystemsIn" messageType="nswsdl:getSystemsOperationRequest"/>
  |                     </variables>
  |                     <sequence name="Sequence1">
  |                         <assign name="Assign1">
  |                             <copy>
  |                                 <from variable="serviceCallID"/>
  |                                 <to>$getSystemsOut.getSystemsObject/serviceCallID</to>
  |                             </copy>
  |                         </assign>
  |                         <reply name="replyGetSystems" partnerLink="ClientPartnerLink" operation="getSystems" portType="nswsdl:openServiceRequest" variable="getSystemsOut">
  |                             <correlations>
  |                                 <correlation set="serviceCallCreation" initiate="no"/>
  |                             </correlations>
  |                         </reply>
  |                     </sequence>
  |                 </scope>
  |             </onEvent>
  |         </eventHandlers>
  |         <sequence name="mainSequence">
  |             <receive name="openServiceCall" createInstance="yes" partnerLink="ClientPartnerLink" operation="openServiceRequest" portType="nswsdl:openServiceRequest" variable="openServiceCallInput">
  |                 <correlations>
  |                     <correlation set="serviceCallCreation" initiate="yes"/>
  |                 </correlations>
  |             </receive>
  |             <assign name="assignIDs">
  |                 <copy>
  |                     <from>$openServiceCallInput.openServiceObject/businessPartnerID</from>
  |                     <to variable="businessPartnerID"/>
  |                 </copy>
  |                 <copy>
  |                     <from>$openServiceCallInput.openServiceObject/serviceCallID</from>
  |                     <to variable="serviceCallID"/>
  |                 </copy>
  |                 <copy>
  |                     <from>$openServiceCallInput.openServiceObject/serviceCallID</from>
  |                     <to>$openServiceCallOutput.openServiceObject/serviceCallID</to>
  |                 </copy>
  |                 <copy>
  |                     <from>true()</from>
  |                     <to>$openServiceCallOutput.openServiceObject/serviceCreationSuccessfull</to>
  |                 </copy>
  |             </assign>
  |             <reply name="openServiceCallReturn" partnerLink="ClientPartnerLink" operation="openServiceRequest" portType="nswsdl:openServiceRequest" variable="openServiceCallOutput">
  |                 <correlations>
  |                     <correlation set="serviceCallCreation" initiate="no"/>
  |                 </correlations>
  |             </reply>
  |         </sequence>
  | </process>
  | 

createServiceCall.wsdl
<?xml version="1.0" encoding="UTF-8"?>
  | <definitions name="createServiceCall" targetNamespace="http://coresystems.ch/bt/wsdl/createServiceCall"
  |     xmlns="http://schemas.xmlsoap.org/wsdl/"
  |     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  |     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  |     xmlns:tns="http://coresystems.ch/bt/wsdl/createServiceCall"
  |     xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
  |     xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop" xmlns:ns0="http://coresystems.ch/bt/xsd/createServiceCall" xmlns:ns1="http://coresystems.ch/bt/xsd/createServiceCall">
  | 
  | 
  |     <!-- MESSAGES -->
  |     <types>
  |         <xsd:schema targetNamespace="http://coresystems.ch/bt/wsdl/createServiceCall" xmlns:tns="http://coresystems.ch/bt/wsdl/createServiceCall" xmlns:ns2="http://www.coresystems.ch/webservices">
  |             <xsd:import schemaLocation="createServiceCallSchema.xsd" namespace="http://www.coresystems.ch/webservices"/>
  |             <xsd:element name="openServiceRequestInType">
  |                 <xsd:complexType>
  |                     <xsd:sequence>
  |                         <xsd:element name="businessPartnerID" type="xsd:string"></xsd:element>
  |                         <xsd:element name="serviceCallID" type="xsd:string"></xsd:element>
  |                     </xsd:sequence>
  |                 </xsd:complexType>
  |             </xsd:element>
  |             <xsd:element name="openServiceRequestOutType">
  |                 <xsd:complexType>
  |                     <xsd:sequence>
  |                         <xsd:element name="serviceCreationSuccessfull" type="xsd:boolean"></xsd:element>
  |                         <xsd:element name="serviceCallID" type="xsd:string"></xsd:element>
  |                     </xsd:sequence>
  |                 </xsd:complexType>
  |             </xsd:element>
  |             <xsd:element name="getSystemsInType">
  |                 <xsd:complexType>
  |                     <xsd:sequence>
  |                         <xsd:element name="serviceCallID" type="xsd:string"></xsd:element>
  |                     </xsd:sequence>
  |                 </xsd:complexType>
  |             </xsd:element>
  |             <xsd:element name="getSystemsOutType">
  |                 <xsd:complexType>
  |                     <xsd:sequence>
  |                         <xsd:element name="serviceCallID" type="xsd:string"></xsd:element>
  |                         <xsd:element name="systemArray" type="ns2:ArrayOfBPSystemInfo"></xsd:element>
  |                     </xsd:sequence>
  |                 </xsd:complexType>
  |             </xsd:element>
  |         </xsd:schema>
  |     </types>
  |     <message name="openServiceRequestInMessage">
  |         <part name="openServiceObject" element="tns:openServiceRequestInType"/>
  |     </message>
  |     <message name="openServiceRequestOutMessage">
  |         <part name="openServiceObject" element="tns:openServiceRequestOutType"/>
  |     </message>
  | 
  |     <message name="getSystemsOperationRequest">
  |         <part name="getSystemsObject" element="tns:getSystemsInType"/>
  |     </message>
  |     <message name="getSystemsOperationResponse">
  |         <part name="getSystemsObject" element="tns:getSystemsOutType"/>
  |     </message>
  |     <portType name="openServiceRequest">
  |         <operation name="openServiceRequest">
  |             <input name="input" message="tns:openServiceRequestInMessage"/>
  |             <output name="output" message="tns:openServiceRequestOutMessage"/>
  |         </operation>
  |         <operation name="getSystems">
  |             <input name="input1" message="tns:getSystemsOperationRequest"/>
  |             <output name="output1" message="tns:getSystemsOperationResponse"/>
  |         </operation>
  |     </portType>
  |     
  |     <!-- PARTNERLINKS -->
  |     <plnk:partnerLinkType name="ClientPartnerLink">
  |         <plnk:role name="customer" portType="tns:openServiceRequest"/>
  |     </plnk:partnerLinkType>
  |     
  |     <vprop:property name="requestID" type="xsd:string"/>
  |     <vprop:propertyAlias propertyName="tns:requestID" messageType="tns:openServiceRequestOutMessage" part="openServiceObject">
  |         <vprop:query>/tns:openServiceRequestOutType/serviceCallID</vprop:query>
  |     </vprop:propertyAlias>
  |     <vprop:propertyAlias propertyName="tns:requestID" messageType="tns:getSystemsOperationRequest" part="getSystemsObject">
  |         <vprop:query>/tns:getSystemsInType/serviceCallID</vprop:query>
  |     </vprop:propertyAlias>
  |     <vprop:propertyAlias propertyName="tns:requestID" messageType="tns:getSystemsOperationResponse" part="getSystemsObject">
  |         <vprop:query>/tns:getSystemsOutType/serviceCallID</vprop:query>
  |     </vprop:propertyAlias>
  |     <vprop:propertyAlias propertyName="tns:requestID" messageType="tns:openServiceRequestInMessage" part="openServiceObject">
  |         <vprop:query>/tns:openServiceRequestInType/serviceCallID</vprop:query>
  |     </vprop:propertyAlias>
  | </definitions>

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

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4165321



More information about the jboss-user mailing list