jbpm 创建流程实例时 org.jbpm.scheduler.exe.Timer is not mapped.java.lang.IndexOutOfBoun

牛肉干 2009-08-27 06:26:06
项目中的代码是:
public JbpmContext getJbpmContext() {
JbpmConfiguration config = JbpmConfiguration.getInstance();
JbpmContext jc = config.getCurrentJbpmContext() ;
if(jc == null){
jc = config.createJbpmContext() ;
}
return jc ;
}

/**
* 开始一个流程
*/
public void newProcessInstance(String issueperson,String wzId , String approvePersonId){
JbpmContext jc = getJbpmContext() ;
try {
jc.setActorId(issueperson) ;
ProcessDefinition pd = jc.getGraphSession().findLatestProcessDefinition("zwTest") ;
ProcessInstance pi = pd.createProcessInstance() ;
ContextInstance ci = pi.getContextInstance() ;
ci.setVariable("issue_person", issueperson) ;
ci.setVariable( APPROVE_ONE_PERSON , approvePersonId) ;
ci.setVariable( "wzId" , wzId) ;
TaskInstance ti = pi.getTaskMgmtInstance().createStartTaskInstance() ;
ti.setVariable("wzId", wzId) ;
ti.end() ;
} catch (Exception e) {
e.printStackTrace() ;
} finally{
if(jc != null){jc.close() ;}
}

}

执行到ProcessDefinition pd = jc.getGraphSession().findLatestProcessDefinition("zwTest") ;
得时候报出:
18:15:20,125 [http-8082-9] WARN ErrorCounter : *** WARNING: Keyword 'end' is being intepreted as an identifier due to: expecting IDENT, found 'end'
18:15:20,125 [http-8082-9] WARN ErrorCounter : *** WARNING: Keyword 'end' is being intepreted as an identifier due to: expecting IDENT, found 'end'
18:15:20,140 [http-8082-9] ERROR ErrorCounter : *** ERROR: line 3:31: expecting "set", found 'job'
18:15:20,156 [http-8082-9] ERROR ErrorCounter : *** ERROR: org.jbpm.scheduler.exe.Timer is not mapped.
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at org.hibernate.hql.ast.HqlSqlWalker.postProcessDelete(HqlSqlWalker.java:418)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:175)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:189)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:130)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:83)
at org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:427)
at org.hibernate.impl.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:388)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:291)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1005)
at org.jbpm.persistence.db.DbPersistenceServiceFactory.getSessionFactory(DbPersistenceServiceFactory.java:91)
at org.jbpm.persistence.db.DbPersistenceService.getSessionFactory(DbPersistenceService.java:95)
at org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:99)
at org.jbpm.persistence.db.DbPersistenceService.getGraphSession(DbPersistenceService.java:341)
at org.jbpm.JbpmContext.getGraphSession(JbpmContext.java:571)
at catt.irr.web.struts.action.baseaction.BaseDispatchAction.newProcessInstance(BaseDispatchAction.java:37)
at catt.irr.ncsl.struts.informationaction.InformationAction.AddInfo(InformationAction.java:223)
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)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:53)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:64)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at catt.irr.web.util.CharacterCodeFilter.doFilter(CharacterCodeFilter.java:57)
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:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
...全文
383 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
牛肉干 2009-08-28
  • 打赏
  • 举报
回复
自己结贴吧!~这个问题已经解决了~
原因是org.jbpm.db.hibernate.query.factory_class.xml里面的语句有问题,delete from org.jbpm.job.Job job 应该改成delete from org.jbpm.job.Job as job 。这个原因可能是和spring对语句执行时监察出不规范的写法。还有一个是'node.name'的错误,是因为没有这个别名的原因。
这个可能和你的SPRING版本有关系。
呵呵~如果我没有描述详细的话,可以加我QQ724247860进行询问。或给我发邮件chenyinan119@sina.com
牛肉干 2009-08-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liuhongwei_num 的回复:]
你现在还在线吗?
[/Quote]
在~这个问题我解决了~还是query.factory_class.xml得问题,可能是我spring其中解析hibernate的类不支持那种HQL的写法。
liuhongwei_num 2009-08-28
  • 打赏
  • 举报
回复
你现在还在线吗?
牛肉干 2009-08-28
  • 打赏
  • 举报
回复
有出问题了~~迷糊!!
我想问下:在根据用户名得到tasklInstance的时候出现13:40:00,046 [http-8082-3] ERROR JDBCExceptionReporter : ORA-00904: "TRUE": 无效的标识符

13:40:00,046 [http-8082-3] ERROR TaskMgmtSession : org.hibernate.exception.SQLGrammarException: could not execute query
org.jbpm.JbpmException: couldn't get task instances list for actor '301'
这个是为什么?
public List getTaskList(String userId){
List taskList = new ArrayList() ;
JbpmContext jc = getJbpmContext() ;
try {
taskList = jc.getTaskList( userId ) ;
} catch (Exception e) {
e.printStackTrace() ;
}finally{
if(jc != null){jc.close() ;}
}
return taskList ;
}这个是我调用的方法。我用的是SSH框架。
在线等待回答!~
牛肉干 2009-08-27
  • 打赏
  • 举报
回复
我部署的是jbpm3.2.2;ssh框架;在启动的时候报19:38:28,718 [main] ERROR SessionFactoryImpl : Error in named query: GraphSession.deleteJobsForProcessInstance
org.hibernate.QueryException: query must begin with SELECT or FROM: delete [

delete from org.jbpm.job.Job job
where job.processInstance = :processInstance

]
19:38:28,765 [main] ERROR SessionFactoryImpl : Error in named query: JobSession.deleteTimersForProcessInstance
org.hibernate.QueryException: query must begin with SELECT or FROM: delete [

delete from org.jbpm.job.Timer timer
where timer.processInstance = :processInstance

]的错误。这个是怎么回事啊?

6,787

社区成员

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

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