[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