JBPM+Spring 问题(No CurrentSessionContext configured)(求助)

cqqmail 2009-04-26 01:25:29
spring配置文件(hibernate.cfg.xml中包含jbmp和项目中的hbm.xml配置文件)
<bean id="jbpmTypes" class="org.springframework.orm.hibernate3.TypeDefinitionBean">
<property name="typeName" value="string_max" />
<property name="typeClass" value="org.jbpm.db.hibernate.StringMax" />
</bean>
<bean id="ftOaSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml"> </property>
<property name="typeDefinitions"><ref bean="jbpmTypes"/></property>
</bean>
<bean id="ftOaWebTxManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory"><ref local="ftOaSessionFactory"/></property>
</bean>
<bean id="ftOaWebBaseTxProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="proxyTargetClass"><value>true</value></property>
<property name="transactionManager">
<ref bean="ftOaWebTxManager"/>
</property>
<property name="transactionAttributes">
<value>find*=PROPAGATION_REQUIRED,readOnly.....</value>
</property>
</bean>
<bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
<property name="sessionFactory" ref="ftOaSessionFactory"/>
<property name="configuration" value="classpath:jbpm.cfg.xml"/>
<property name="processDefinitions">
<list>
<!-- ref local="qingjiaWorkFlow"/-->
</list>
</property>
<property name="createSchema" value="false"/>
</bean>
<!-- jBPM template -->
<bean id="jbpmTemplate" class="org.springmodules.workflow.jbpm31.JbpmTemplate">
<constructor-arg index="0" ref="jbpmConfiguration"/>
<!-- constructor-arg index="1" ref="qingjiaWorkFlow"/-->
</bean>
<!--bean id="qingjiaWorkFlow" class="org.springmodules.workflow.jbpm31.definition.ProcessDefinitionFactoryBean">
<property name="definitionLocation" value="classpath:process/qingjia/processdefinition.xml"/>
</bean -->

jbpm.cfg.xml 修改部分

<!-- service name="persistence" factory="org.jbpm.persistence.db.DbPersistenceServiceFactory" /-->
<service name="persistence">
<factory>
<bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory">
<field name="isTransactionEnabled"><false/></field>
<field name="isCurrentSessionEnabled"><true/></field>
</bean>
</factory>
</service>

DAO配置
<bean id="qingjiaDAO" class="com.jbpmTest.dao.impl.QingjiaDAOImpl"
p:sessionFactory-ref="ftOaSessionFactory" />

QingjiaDAOImpl.java

private void addNewProcess(Qingjia qj){
// 走流程
JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
JbpmContext jbpmContext=jbpmConfiguration.getCurrentJbpmContext();
if(jbpmContext==null){
jbpmContext=jbpmConfiguration.createJbpmContext();
}
log.info("jbpmContext=============="+jbpmContext);
log.info("jbpmContext.getSession=============="+jbpmContext.getSession());

ProcessDefinition pd = jbpmContext.getGraphSession().findLatestProcessDefinition("qingjia");

ProcessInstance pi = pd.createProcessInstance();
TaskInstance ti = pi.getTaskMgmtInstance().createStartTaskInstance();

pi.getContextInstance().setVariable("userId",qj.getUser().getId());
ti.setVariable("qingjiaId",qj.getId());
ti.end();
}


保存资料的时候总是报错,项目的资料都可以保存,但是流程就报错
org.hibernate.HibernateException: No CurrentSessionContext configured!
at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:542)
at org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:105)
at org.jbpm.JbpmContext.getSession(JbpmContext.java:506)
at com.jbpmTest.dao.impl.QingjiaDAOImpl.addNewProcess(QingjiaDAOImpl.java:32)
...全文
459 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aokejiaju 2010-03-25
  • 打赏
  • 举报
回复
当我把hibernate session 付给 jbpm时,它又会报错
jbpmContext.setSessionFactory(super.getSessionFactory());

ProcessInstance pi = www.lybase.compd.createProcessInstance();
TaskInstance ti = pi.getTaskMgmtInstance().createStartTaskInstance();
红色会报错
org.jbpm.JbpmException: couldn't instantiate bean 'jbpm.task.instance.factory' of type 'org.jbpm.taskinstance.CustomTaskInstanceFactoryImpl'
猫王子仁 2010-03-22
  • 打赏
  • 举报
回复
在hibernate.cfg.xml中加入如下属性:
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
moonjaya 2009-04-28
  • 打赏
  • 举报
回复
把你的流程定义文件贴出来看下!
cqqmail 2009-04-26
  • 打赏
  • 举报
回复
当我把hibernate session 付给 jbpm时,它又会报错
jbpmContext.setSessionFactory(super.getSessionFactory());

ProcessInstance pi = pd.createProcessInstance();
TaskInstance ti = pi.getTaskMgmtInstance().createStartTaskInstance();
红色会报错
org.jbpm.JbpmException: couldn't instantiate bean 'jbpm.task.instance.factory' of type 'org.jbpm.taskinstance.CustomTaskInstanceFactoryImpl'

6,787

社区成员

发帖
与我相关
我的任务
社区描述
JBoss技术交流
社区管理员
  • JBoss技术交流社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧