[jboss-user] [JBoss jBPM] - Problem configuring jBPM4 with Spring

bogdanj do-not-reply at jboss.com
Thu Jul 30 10:44:40 EDT 2009


Hi

I have a problem related to configuring jBPM 4 and Spring.

Here is jbpm.cfg.xml:


  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <jbpm-configuration>
  | 
  | 	<import resource="jbpm.jpdl.cfg.xml" />
  | 	<import resource="jbpm.identity.cfg.xml" />
  | 	<import resource="jbpm.jobexecutor.cfg.xml" />
  | 
  | 	<process-engine-context>
  | 		<repository-service />
  | 		<repository-cache />
  | 		<execution-service />
  | 		<history-service />
  | 		<management-service />
  | 		<identity-service />
  | 		<task-service />
  | 
  | 		<!-- Here we needed to change the transaction interceptor to spring-transaction-interceptor -->
  | 		<command-service>
  | 			<spring-transaction-interceptor />
  | 			<retry-interceptor type="jta" />
  | 			<environment-interceptor />
  | 		</command-service>
  | 
  | 		<!-- Added spring as read-context -->
  | 		<script-manager default-expression-language="juel"
  | 			default-script-language="juel"
  | 			read-contexts="execution, environment, process-engine, spring"
  | 			write-context="">
  | 			<script-language name="juel"
  | 				factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" />
  | 		</script-manager>
  | 
  | 		<authentication />
  | 
  | 		<id-generator />
  | 		<types resource="jbpm.variable.types.xml" />
  | 
  | 		<address-resolver />
  | 
  | 		<business-calendar>
  | 			<monday hours="9:00-12:00 and 12:30-17:00" />
  | 			<tuesday hours="9:00-12:00 and 12:30-17:00" />
  | 			<wednesday hours="9:00-12:00 and 12:30-17:00" />
  | 			<thursday hours="9:00-12:00 and 12:30-17:00" />
  | 			<friday hours="9:00-12:00 and 12:30-17:00" />
  | 			<holiday period="01/07/2008 - 31/08/2008" />
  | 		</business-calendar>
  | 
  | 		<mail-template name='task-notification'>
  | 			<to users="${task.assignee}" />
  | 			<subject>${task.name}</subject>
  | 			<text><![CDATA[Hi ${task.assignee},
  | Task "${task.name}" has been assigned to you.
  | ${task.description}
  | 
  | Sent by JBoss jBPM
  | ]]></text>
  | 		</mail-template>
  | 
  | 		<mail-template name='task-reminder'>
  | 			<to users="${task.assignee}" />
  | 			<subject>${task.name}</subject>
  | 			<text><![CDATA[Hey ${task.assignee},
  | Do not forget about task "${task.name}".
  | ${task.description}
  | 
  | Sent by JBoss jBPM
  | ]]></text>
  | 		</mail-template>
  | 
  | 
  | 
  | 	</process-engine-context>
  | 
  | 	<transaction-context>
  | 		<transaction type="jta" />
  | 	
  | 		<repository-session />
  | 		<db-session />
  | 
  | 		<message-session />
  | 		<timer-session />
  | 		<history-session />
  | 		<mail-session>
  | 			<mail-server>
  | 				<session-properties resource="jbpm.mail.properties" />
  | 			</mail-server>
  | 		</mail-session>
  | 
  | 		<!-- Need to set explicitly that we don't want jbpm to create sessions -->
  | 		<hibernate-session current="true" />
  | 	</transaction-context>
  | </jbpm-configuration>
  | 

In Spring applicationContext I have defined the following


  | <!--
  | 		jBPM related beans
  | 	-->
  | 
  | 	<bean id="jbpmConfiguration" class="org.jbpm.pvm.internal.cfg.SpringConfiguration">
  | 		<constructor-arg value="jbpm.cfg.xml" />
  | 	</bean>
  | 	
  | 	<bean id="processEngine" factory-bean="jbpmConfiguration" factory-method="buildProcessEngine" />
  | 	<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
  | 	<bean id="executionService" factory-bean="processEngine" factory-method="getExecutionService" />

When trying to execute something like:


  | NewDeployment deployment = repositoryService.createDeployment();
  | deployment.addResourceFromClasspath("com/webmedia/bes/jbpm/hello-world.jpdl.xml");
  | deployment.deploy();
  | 

I end up with:



  | by: org.jbpm.api.JbpmException: no environment for managing hibernate transaction
  | 	at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:53)
  | 	at org.jbpm.pvm.internal.repository.DeploymentImpl.deploy(DeploymentImpl.java:89)
  | 	at com.webmedia.bes.web.action.BudgetsBrowser.browse(BudgetsBrowser.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:597)

I guess I am missing something obvious in the configuration. It wouldn't be the first time, if somebody can help, I would be very thankful.

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

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



More information about the jboss-user mailing list