[jboss-user] [JBoss jBPM] - Using Correlations in JBPM-BPEL

dhanushgopinath do-not-reply at jboss.com
Tue Jun 3 05:34:45 EDT 2008


Hi,

I assume I can post queries regarding JBPM-BPEL here.

I am using jBPM-BPEL 1.1.GA with JBOSS 4.2.0.GA. I am having correlation sets in my process. But I am not able to deploy the process. Deployment throws a hibernate exception

org.jbpm.JbpmException: problem closing services {persistence=org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.ibm.wsdl.MessageImpl}
  | 	org.jbpm.svc.Services.close(Services.java:245)
  | 	org.jbpm.JbpmContext.close(JbpmContext.java:139)
  | 	org.jbpm.bpel.web.DeploymentServlet.deployProcessDefinition(DeploymentServlet.java:195)
  | 
  | 
  | root cause
  | 
  | org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.ibm.wsdl.MessageImpl
  | 	org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:219)
  | 
  | 

This happens only when I use correlation sets. If I remove the reference to the correlation sets, it works fine and gets deployed. Any idea how to solve this? has anyone come across such an error? I googled and didn't find many answers

I am attaching the bpel and wsdl files here

process file:

  | <?xml version="1.0" encoding="UTF-8"?>
  | <bpel:process xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:corr="http://www.example.org/HTCorrelations/" xmlns:data="http://www.example.org/HTDataSchema/" xmlns:ns1="http://www.example.org/HTCreateAssembly/" xmlns:ns2="http://www.example.org/HTAssignUsersPT/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  | xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  | name="HTCreateAssembly" suppressJoinFailure="yes" targetNamespace="http://HTCreateAssembly">
  |    <bpel:import importType="http://schemas.xmlsoap.org/wsdl/" location="HTCreateAssembly.wsdl" namespace="http://www.example.org/HTCreateAssembly/"/>
  |    <bpel:import importType="http://schemas.xmlsoap.org/wsdl/" location="HTAssignUsersPT.wsdl" namespace="http://www.example.org/HTAssignUsersPT/"/>
  |    <bpel:import importType="http://schemas.xmlsoap.org/wsdl/" location="HTCorrelations.wsdl" namespace="http://www.example.org/HTCorrelations/"/>
  |    <bpel:partnerLinks>
  |       <bpel:partnerLink myRole="StartAssemblyServiceODE" name="StartAssemblyPL" partnerLinkType="ns1:StartAssemblyLT"/>
  |       <bpel:partnerLink myRole="AssignUserServiceResponseODE" name="AssignUserServicePL" partnerLinkType="ns2:AssignUserServiceLT" partnerRole="AssignUserServiceODE"/>
  |    </bpel:partnerLinks>
  |    <bpel:variables>
  |       <bpel:variable  name="inputUser" messageType="ns1:StartAssemblyRequest"/>                   
  |       <bpel:variable  name="assignUserResponse" messageType="ns2:AssignUsersResponse"/>
  |       <bpel:variable  name="assignedUser" messageType="ns2:AssignUsersRequest"/>
  |    </bpel:variables>
  |    <bpel:correlationSets>
  |       <bpel:correlationSet name="CS1" properties="corr:UserID"/>
  |    </bpel:correlationSets>
  |    <bpel:sequence>
  |       <bpel:receive createInstance="yes" name="Start" operation="StartAssembly" partnerLink="StartAssemblyPL" variable="inputUser">
  | 
  |       </bpel:receive>
  |       <bpel:invoke inputVariable="assignedUser" name="InvokeAssignUsers" operation="AssignUsers" partnerLink="AssignUserServicePL">
  |          <bpel:correlations>
  |             <bpel:correlation initiate="yes" pattern="request" set="CS1"/>
  |          </bpel:correlations>
  |       </bpel:invoke>
  |       <bpel:receive name="ReceiveResponse" operation="GetAssignUsersResponse" partnerLink="AssignUserServicePL" variable="assignUserResponse">
  |          <bpel:correlations>
  |             <bpel:correlation initiate="no" set="CS1"/>
  |          </bpel:correlations>
  |       </bpel:receive>
  |        
  |        <bpel:assign>
  |            <bpel:copy>
  | 	     <bpel:from>
  | 	       <bpel:literal>
  | 		       <sref:service-ref xmlns:sref="http://docs.oasis-open.org/wsbpel/2.0/serviceref">
  | 		                 <soap:address location="http://localhost:8090/AssignUsersWSODE2/AssignUserServiceODE"/>
  | 		        </sref:service-ref>
  | 	       </bpel:literal>
  | 	     </bpel:from>
  | 	     <bpel:to partnerLink="AssignUserServicePL"/>
  |  	 </bpel:copy> 
  |       </bpel:assign>
  |       
  |       <bpel:assign>
  |          <bpel:copy> 
  | 	   <bpel:from>
  | 	   	<bpel:literal>
  | 	                   <data:AssignUsers>
  | 	   			 <data:userid>A3</data:userid>
  | 	 		</data:AssignUsers>
  | 	        </bpel:literal>
  | 	    </bpel:from>
  |             <bpel:to>$assignedUser.assinguserIP</bpel:to>            
  |          </bpel:copy>        
  |       </bpel:assign>
  |       <bpel:assign>
  |          <bpel:copy>
  | 	 <bpel:from>$assignedUser.assinguserIP</bpel:from>
  |             <bpel:to>$assignUserResponse.assinguserRespIP</bpel:to>         
  |          </bpel:copy>
  |       </bpel:assign>
  |    </bpel:sequence>
  | </bpel:process>
  | 

wsdl files:

  | 
  | <?xml version="1.0" encoding="UTF-8"?>
  | <wsdl:definitions xmlns:tns="http://www.example.org/HTCreateAssembly/"
  | 	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  | 	xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="HTCreateAssembly"
  | 	xmlns:data="http://www.example.org/HTDataSchema/"
  | 		xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  | 	targetNamespace="http://www.example.org/HTCreateAssembly/">
  | 
  | 	<plnk:partnerLinkType name="StartAssemblyLT"
  | 		xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
  | 		<plnk:role name="StartAssemblyServiceODE"
  | 			portType="tns:StartAssemblyPT" />
  | 	</plnk:partnerLinkType>
  | 
  | 	<wsdl:types>
  | 		<xsd:schema>
  | 			<xsd:import namespace="http://www.example.org/HTDataSchema/"
  | 				schemaLocation="HTDataSchema.xsd">
  | 			</xsd:import>
  | 		</xsd:schema>
  | 	</wsdl:types>
  | 	<wsdl:message name="StartAssemblyRequest">
  | 		<wsdl:part element="data:AssignUsersReq" name="startAssemblyIP" />
  | 	</wsdl:message>
  | 	<wsdl:portType name="StartAssemblyPT">
  | 		<wsdl:operation name="StartAssembly">
  | 			<wsdl:input message="tns:StartAssemblyRequest" />
  | 		</wsdl:operation>
  | 	</wsdl:portType>
  | 
  | 	<wsdl:binding name="StartAssemblyBinding" type="tns:StartAssemblyPT">
  | 		<soap:binding style="document"
  | 			transport="http://schemas.xmlsoap.org/soap/http" />
  | 		<wsdl:operation name="StartAssembly">
  | 			<soap:operation
  | 				soapAction="http://www.example.org/HTCreateAssembly/StartAssembly" />
  | 			<wsdl:input>
  | 				<soap:body use="literal" />
  | 			</wsdl:input>
  | 		</wsdl:operation>
  | 	</wsdl:binding>
  | 
  |     <wsdl:service name="StartAssemblyServiceODE">
  | 		<wsdl:port name="StartAssemblyPort" binding="tns:StartAssemblyBinding">
  |      		<soap:address location="http://localhost:8080/ode/processes/StartAssembly"/>
  | 		</wsdl:port>
  |     </wsdl:service>
  | 
  | </wsdl:definitions>
  | 
  | ______________________________________
  | 
  | <?xml version="1.0" encoding="UTF-8"?>
  | <wsdl:definitions xmlns:tns="http://www.example.org/HTAssignUsersPT/"
  | 	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  | 	xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="HTAssignUsersPT"
  | 	xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
  | 	targetNamespace="http://www.example.org/HTAssignUsersPT/"
  | 	xmlns:data="http://www.example.org/HTDataSchema/"
  | 	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
  | 
  | 
  | 	<plnk:partnerLinkType name="AssignUserServiceLT"
  | 		xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
  | 		<plnk:role name="AssignUserServiceODE" portType="tns:AssignUserPT" />
  | 		<plnk:role name="AssignUserServiceResponseODE"
  | 			portType="tns:AssignUserResponsePT" />
  | 	</plnk:partnerLinkType>
  | 
  | 	<wsdl:types>
  | 		<xsd:schema>
  | 			<xsd:import namespace="http://www.example.org/HTDataSchema/"
  | 				schemaLocation="HTDataSchema.xsd">
  | 			</xsd:import>
  | 		</xsd:schema>
  | 	</wsdl:types>
  | 
  | 	<wsdl:message name="AssignUsersRequest">
  | 		<wsdl:part element="data:AssignUsersReq" name="assinguserIP" />
  | 	</wsdl:message>
  | 	<wsdl:message name="AssignUsersResponse">
  | 		<wsdl:part element="data:AssignUsersReply"
  | 			name="assinguserRespIP" />
  | 	</wsdl:message>
  | 
  | 	<wsdl:portType name="AssignUserPT">
  | 		<wsdl:operation name="AssignUsers">
  | 			<wsdl:input message="tns:AssignUsersRequest" />
  | 		</wsdl:operation>
  | 	</wsdl:portType>
  | 	<wsdl:portType name="AssignUserResponsePT">
  | 		<wsdl:operation name="GetAssignUsersResponse">
  | 			<wsdl:input message="tns:AssignUsersResponse" />
  | 		</wsdl:operation>
  | 	</wsdl:portType>
  | 
  | 	<wsdl:binding name="AssignUserBinding" type="tns:AssignUserPT">
  | 		<soap:binding style="document"
  | 			transport="http://schemas.xmlsoap.org/soap/http" />
  | 		<wsdl:operation name="AssignUsers">
  | 			<soap:operation
  | 				soapAction="http://www.example.org/HTAssignUsersPT/AssignUsers" />
  | 			<wsdl:input>
  | 				<soap:body use="literal" />
  | 			</wsdl:input>
  | 		</wsdl:operation>
  | 	</wsdl:binding>
  | 
  | 	<wsdl:binding name="AssignUserResponseBinding" type="tns:AssignUserResponsePT">
  | 		<soap:binding style="document"
  | 			transport="http://schemas.xmlsoap.org/soap/http" />
  | 		<wsdl:operation name="GetAssignUsersResponse">
  | 			<soap:operation
  | 				soapAction="http://www.example.org/HTAssignUsersPT/GetAssignUsersResponse" />
  | 			<wsdl:input>
  | 				<soap:body use="literal" />
  | 			</wsdl:input>
  | 		</wsdl:operation>
  | 	</wsdl:binding>
  | 	
  | 	<wsdl:service name="AssignUserServiceODE">
  | 		<wsdl:port name="AssignUserServicePort"
  | 			binding="tns:AssignUserBinding">
  | 			<soap:address
  | 				location="http://localhost:8090/AssignUserWsODE/AssignUserServiceODE"></soap:address>
  | 		</wsdl:port>
  | 		<wsdl:port name="AssignUserResponseServicePort"
  | 			binding="tns:AssignUserResponseBinding">
  | 			<soap:address location="http://localhost:8080/ode/processes/AssignUserResponse"></soap:address> 
  | 		</wsdl:port>
  | 	</wsdl:service>
  | </wsdl:definitions>
  | 
  | 

Correlation WSDL:


  | <?xml version="1.0" encoding="UTF-8"?>
  | <wsdl:definitions xmlns:tns="http://www.example.org/HTCorrelations/"
  | 	xmlns:usrmsg="http://www.example.org/HTAssignUsersPT/"
  | 	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  | 	xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="HTCorrelations"
  | 	xmlns:data="http://www.example.org/HTDataSchema/"
  |         xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
  | 	targetNamespace="http://www.example.org/HTCorrelations/">
  |     
  |     <wsdl:import location="HTAssignUsersPT.wsdl" namespace="http://www.example.org/HTAssignUsersPT/"/>
  |         <wsdl:types>
  | 		<xsd:schema>
  | 			<xsd:import namespace="http://www.example.org/HTDataSchema/"
  | 				schemaLocation="HTDataSchema.xsd">
  | 			</xsd:import>
  | 		</xsd:schema>
  | 	</wsdl:types>
  | 	
  | 	<vprop:property name="UserID" type="xsd:string"/>
  | 		
  | 	<vprop:propertyAlias messageType="usrmsg:AssignUsersRequest"
  | 		part="assinguserIP" propertyName="tns:UserID">
  | 		<vprop:query>/data:AssignUsersReq/data:userid</vprop:query>
  | 	</vprop:propertyAlias>	
  | 	
  | 	<vprop:propertyAlias messageType="usrmsg:AssignUsersResponse"
  | 			part="assinguserRespIP" propertyName="tns:UserID">
  | 			<vprop:query>/data:AssignUsersReply/data:userid</vprop:query>
  | 	</vprop:propertyAlias>
  | 	
  | </wsdl:definitions>
  | 

Is there any document explaining the usage of correlation sets in Jboss jbpm bpel?


Thanks
Dhanush Gopinath

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

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



More information about the jboss-user mailing list