[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