spring 与jbpm整合问题

本文介绍了一个关于JBPM工作流引擎与Spring框架整合时出现的错误,并给出了具体的解决方案。通过修改配置文件中任务分配类的方式,解决了因Spring类使用不当导致的NullPointerException异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jbpm和spring 整合后,写了一个简单的流程进行测试。当用到使用了spring类的时候,程序报错

org.jbpm.graph.def.DelegationException

	at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:208)

	at org.jbpm.taskmgmt.exe.TaskInstance.assign(TaskInstance.java:198)

	at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:148)

	at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:167)

	at org.jbpm.graph.def.Node.enter(Node.java:316)

	at org.jbpm.graph.def.Node$FastClassByCGLIB$d187eeda.invoke(<generated>)

	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)

	at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:161)

	at org.jbpm.graph.def.Node$EnhancerByCGLIB$56fa08c3_3.enter(<generated>)

	at org.jbpm.graph.def.Transition.take(Transition.java:119)

	at org.jbpm.graph.def.Node.leave(Node.java:383)

	at org.jbpm.graph.node.StartState.leave(StartState.java:70)

	at org.jbpm.graph.def.Node$FastClassByCGLIB$d187eeda.invoke(<generated>)

	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)

	at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:161)

	at org.jbpm.graph.def.Node$EnhancerByCGLIB$56fa08c3_3.leave(<generated>)

	at org.jbpm.graph.exe.Token.signal(Token.java:178)

	at org.jbpm.graph.exe.Token.signal(Token.java:123)

	at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:440)

	at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:354)

	at com.struts.action.ModifyAction.execute(ModifyAction.java:109)

	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)

	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)

	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)

	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)

	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

	at encoding.EncodingFilter.doFilter(EncodingFilter.java:32)

	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

	at org.jbpm.webapp.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:56)

	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

	at org.jbpm.web.JbpmContextFilter.doFilter(JbpmContextFilter.java:83)

	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

	at org.jbpm.webapp.filter.LogFilter.doFilter(LogFilter.java:59)

	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)

	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)

	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)

	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)

	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

	at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.NullPointerException

	at com.workflow.action.ManagerAssignment.assign(ManagerAssignment.java:26)

	at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignmentDelegation(TaskMgmtInstance.java:217)

	at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:193)

	... 50 more
开始以为程序不能进入下个节点,后来发现是spring的问题
<assignment class="com.workflow.action.ManagerAssignment" config-type="bean">

              
         </assignment>
  将上面改为  
<assignment class="org.springmodules.workflow.jbpm31.JbpmHandlerProxy" config-type="bean">              
<targetBean>managerAssignment</targetBean>          

  <factoryKey>jbpmConfiguration</factoryKey>      

   </assignment>
这样就可以正常运行了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值