[jboss-user] [jBPM] New message: "[Q v4.3] Spring - Juel Integration"
Ken Hoying
do-not-reply at jboss.com
Mon Mar 8 10:08:54 EST 2010
User development,
A new message was posted in the thread "[Q v4.3] Spring - Juel Integration":
http://community.jboss.org/message/530559#530559
Author : Ken Hoying
Profile : http://community.jboss.org/people/khoying
Message:
--------------------------------------------------------------
I believe that I have successfully integrated jBPM with Spring. However, I am still having one issue. Section 17 of the jBPM Developer's Guide, seems to indicate that Spring objects can be referenced in Juel expressions. However, I have not been able to make this work. I get the stack trace:
Caused by: javax.el.PropertyNotFoundException: Cannot find property boNpcPaProcess
at de.odysseus.el.util.SimpleResolver.get(SimpleResolver.java:106)
at de.odysseus.el.util.SimpleResolver.getValue(SimpleResolver.java:126)
at de.odysseus.el.tree.impl.ast.AstIdentifier.eval(AstIdentifier.java:69)
at de.odysseus.el.tree.impl.ast.AstEval.eval(AstEval.java:42)
at de.odysseus.el.tree.impl.ast.AstNode.getValue(AstNode.java:29)
at de.odysseus.el.TreeValueExpression.getValue(TreeValueExpression.java:120)
at org.jbpm.pvm.internal.script.JuelScriptEngine.evalExpr(JuelScriptEngine.java:176)
My jbpm.cfg.xml looks as follows:
<?xml version="1.0" encoding="UTF-8"?>
<jbpm-configuration>
<import resource="jbpm.default.cfg.xml" />
<import resource="jbpm.tx.spring.cfg.xml" />
<import resource="jbpm.jpdl.cfg.xml" />
<import resource="jbpm.bpmn.cfg.xml" />
<import resource="jbpm.identity.cfg.xml" />
<process-engine-context>
<!-- Override default script manager. Wire it to read the Spring 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" />
<!-- Juel should be sufficient.
<script-language name="bsh" factory="org.jbpm.pvm.internal.script.BshScriptEngineFactory" />
<script-language name="groovy" factory="org.jbpm.pvm.internal.script.GroovyScriptEngineFactory" />
-->
</script-manager>
<business-calendar>
<monday hours="8:00-17:00"/>
<tuesday hours="8:00-17:00"/>
<wednesday hours="8:00-17:00"/>
<thursday hours="8:00-17:00"/>
<friday hours="8:00-17:00"/>
<holiday period="01/07/2008 - 31/08/2008"/>
</business-calendar>
</process-engine-context>
<!-- Web Console
<import resource="jbpm.console.cfg.xml" />
-->
<!-- Needed for timers and async tasks
<import resource="jbpm.jobexecutor.cfg.xml" />
-->
</jbpm-configuration>
My Spring config is broken into several files. However, the relevant pieces are as follows:
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />
<bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"
value="jdbc/ScaGlobalDataSource" />
</bean>
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- This config is for unit tests as the jar will not exist yet. -->
<!-- It does not work at runtime since the files will be located in a jar and hibernate will not pick them up. -->
<property name="mappingLocations">
<value>classpath*:**/*.hbm.xml</value>
</property>
<!-- This config does not work for unit tests as the jar will not exist yet. -->
<!-- It does work at runtime since the files will be located in a jar. -->
<property name="mappingJarLocations">
<list>
<value>classpath*:**/services.jar</value>
<value>classpath*:**/jbpm-pvm-*.jar</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle10gDialect
</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.generate_statistics">false</prop>
</props>
</property>
<property name="configLocation" value="classpath:jbpm.hibernate.cfg.xml" />
<property name="eventListeners">
<map>
<entry key="merge">
<bean
class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener" />
</entry>
</map>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg ref="dataSource"/>
</bean>
<bean id="basePaBO" abstract="true" parent="baseBO">
<property name="resources">
<ref bean="resourcePa" />
</property>
</bean>
<bean id="baseProcessPaBO" abstract="true" parent="basePaBO">
<property name="processEngine">
<ref bean="processEngine" />
</property>
</bean>
<bean id="boNpcPaProcess" parent="baseTransactionProxy" scope="prototype">
<property name="target">
<bean class="com.premierinc.sca.pa.business.NpcPriceActivationImpl" parent="baseProcessPaBO">
</bean>
</property>
</bean>
I did see some examples where a "spring.cfg" string was set in the jBPM configuration. Is this maybe needed?
<string name="spring.cfg" value="applicationContext-services-pa.xml" />
Any help would be GREATLY appreciated!
Thanks in advance,
Ken
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/530559#530559
More information about the jboss-user
mailing list