Jboss ESB JBPM - No EPR present in process instance
keljboss Feb 9, 2011 11:13 AMHi,
I am a new in jboss ESB, I am triyng to make JBPM and JBOSS ESB exchange().
my example is that jbpm calls ESB and get the response, when i test the esb using soapUI the process work fine, but using JBPM i have the exception below
org.jboss.soa.esb.ConfigurationException: No EPR present in process instance
at org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler.execute(EsbActionHandler.java:137)
my jboss-esb.xml
<?xml version="1.0"?><jbossesb parameterReloadSecs="5"xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.0.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.0.xsdhttp://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.0.xsd"><providers> <jbr-provider name="ibaSommeHttpGateway" protocol="http"> <jbr-bus busid="ibaSommeHttpGateway" port="9999"/> </jbr-provider> <jbr-provider name="ibaMultiplicationHttpGateway" protocol="http"> <jbr-bus busid="ibaMultiplicationHttpGateway" port="7777"/> </jbr-provider></providers><services><service category="Calcule" description="calcule la somme de deux valeurs" invmScope="GLOBAL" name="somme"> <listeners> <jbr-listener busidref="ibaSommeHttpGateway" is-gateway="true" name="ibaHttpSommeGatewayListener"/> </listeners> <actions mep="RequestResponse"> <action class="org.jboss.soa.esb.actions.routing.http.HttpRouter" name="ibaSommeHttpRouter"> <property name="method" value="POST"/> <property name="endpointUrl" value="http://localhost:8080/somme/SommeService?wsdl"/> <property name="endpointAdresse" value="http://localhost:8080/somme/SommeService?wsdl"/> <property name="reply-to-originator" value="true"/> </action> <action class="org.jboss.soa.esb.actions.SystemPrintln" name="message"> <property name="message" value="in the somme yoooou pi ESB"/> </action> </actions> </service> <service category="Calcule" description="calcule la multiplication de deux valeurs" invmScope="GLOBAL" name="multiplication"> <listeners> <jbr-listener busidref="ibaMultiplicationHttpGateway" is-gateway="true" name="ibaHttpMultiGatewayListener"/> </listeners> <actions mep="RequestResponse"> <action class="org.jboss.soa.esb.actions.routing.http.HttpRouter" name="ibaMultiplicationHttpRouter"> <property name="method" value="POST"/> <property name="endpointUrl" value="http://localhost:8080/multiplication/MultiplicationService?wsdl"/> <property name="reply-to-originator" value="true"/> </action> <action class="org.jboss.soa.esb.actions.SystemPrintln" name="message"> <property name="message" value="in the multiplication ESB"/> </action> </actions> </service></services></jbossesb>
and the precessdefinition.xml
<?xml version="1.0" encoding="utf-8"?><process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="calcule">
<start-state name="start">
<transition to="somme" name="callSomme">
<action name="action">
<message>Going to the SOe</message>
</action>
</transition>
</start-state>
<node name="somme">
<action class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
<replyToOriginator>true</replyToOriginator>
<esbServiceName>
somme</esbServiceName>
<esbCategoryName>Calcule</esbCategoryName>
<replyToOriginator>reply</replyToOriginator>
<bpmToEsbVars> <mapping bpm="a" esb="a"></mapping> <mapping bpm="b" esb="b"></mapping> </bpmToEsbVars> <esbToBpmVars> <mapping bpm="somme" esb="somme"></mapping> </esbToBpmVars> </action> <transition to="fin" name="tofin"> </transition> </node> <end-state name="fin"></end-state></process-definition>
the java code :
JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
GraphSession graphSession = jbpmContext.getGraphSession();
ProcessDefinition processDefinition =
graphSession.findLatestProcessDefinition("calcule");
String a = request.getParameter("a");
String b = request.getParameter("b");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
Token token = processInstance.getRootToken();
System.out.println(token.getNode().getName());
ContextInstance contextInstance = processInstance.getContextInstance();
contextInstance.setVariable("a", new Float(500));
contextInstance.setVariable("b", new Float(500));
processInstance.getRootToken().signal();
is there anything that i messed ?
for information i am using jboss-esb4.9, jbpm 3.2 and jbossAS 5.1.0GA
thank you for your help
Cheers