在删除一个流程定义的时候出现以下问题,不知道是什么原因。
org.hibernate.exception.SQLGrammarException: could not execute query
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
org.hibernate.loader.Loader.doList(Loader.java:2231)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
org.hibernate.loader.Loader.list(Loader.java:2120)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
org.jbpm.pvm.internal.query.AbstractQuery.execute(AbstractQuery.java:96)
org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl.execute(ProcessDefinitionQueryImpl.java:65)
org.jbpm.pvm.internal.query.AbstractQuery.untypedList(AbstractQuery.java:71)
org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl.list(ProcessDefinitionQueryImpl.java:141)
org.jbpm.pvm.internal.cmd.DeleteDeploymentCmd.execute(DeleteDeploymentCmd.java:63)
org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
org.jbpm.pvm.internal.repository.RepositoryServiceImpl.deleteDeploymentCascade(RepositoryServiceImpl.java:73)
com.smartdot.leave.action.DeleteProcessDefinition.doPost(DeleteProcessDefinition.java:30)
com.smartdot.leave.action.DeleteProcessDefinition.doGet(DeleteProcessDefinition.java:19)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.hibernate.exception.SQLGrammarException: could not execute query
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
org.hibernate.loader.Loader.doList(Loader.java:2231)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
org.hibernate.loader.Loader.list(Loader.java:2120)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
org.jbpm.pvm.internal.query.AbstractQuery.execute(AbstractQuery.java:96)
org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl.execute(ProcessDefinitionQueryImpl.java:65)
org.jbpm.pvm.internal.query.AbstractQuery.untypedList(AbstractQuery.java:71)
org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl.list(ProcessDefinitionQueryImpl.java:141)
org.jbpm.pvm.internal.cmd.DeleteDeploymentCmd.execute(DeleteDeploymentCmd.java:63)
org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
org.jbpm.pvm.internal.repository.RepositoryServiceImpl.deleteDeploymentCascade(RepositoryServiceImpl.java:73)
com.smartdot.leave.action.DeleteProcessDefinition.doPost(DeleteProcessDefinition.java:30)
com.smartdot.leave.action.DeleteProcessDefinition.doGet(DeleteProcessDefinition.java:19)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
解决方案 »
- 求北风网厉风行老师的那个ExtJs的个人理财系统视频---视频---视频---名字弄长点,显目。!!路过的有的帮助下吧,俺是穷人。
- ssh Ehcache缓存配置的困惑
- 对Web项目中的乱码问题的些许揣测(望纠正)
- 大家第一份作几年才跳槽啊?
- 初学JavaEE,用哪个数据库好?
- 求助:客户端获取文件问题
- 我的处女作,花了一个月写的基于ssh和mysql的图书馆图书管理系统,功能都已实现。不知道水平如何,特拿出来请大侠指正批评
- 急求JSPSmartUpload组建
- sql server连接出错,帮找错,多谢!
- web service 作用是什么呀,我搞了三天也没明白!!
- MYSQL 存储过程转 server 2005 存储过程写法
- java乱码 bug啊!
String processDefinitionId = request.getParameter("processDefinitionId");
ProcessEngine processEngine = Configuration.getProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
repositoryService.deleteDeploymentCascade(processDefinitionId);
request.getRequestDispatcher("index.jsp").forward(request, response);
其中,"processDefinitionId"是从jsp传来的流程定义id,这个id存在无误。
我使用的是jbpm4.3,tomcat5.5。这应该和tomcat版本无关吧。
请大家注意,方法名是删除deployment,因此我们必须传递一个deploymentId才行,这个deploymentId是个string,但是实际使用时,会转换成long型。
repositoryService.deleteDeploymentCascade(processDefinitionId);再看看我们这位仁兄,妄图使用processdefinitionid冒名顶替。这个processDefinitionid是一个string,而且是不能转换成long型的字符串。
String processDefinitionId = request.getParameter("processDefinitionId");因此,出问题很正常,但是比较让人疑惑的是,应该报错NumberFormatException才对,却不知道为何变成了BadSQLGammerException了。
http://www.family168.com/jbpm4/video.html然后再看一下常见问题列表faq
http://www.family168.com/jbpm4/faq.html然后就可以看翻译好的官方用户手册和开发文档了。
用户手册
http://www.family168.com/tutorial/jbpm4.0/html/index.html
开发文档
http://www.family168.com/tutorial/jbpm4devguide/html/index.html
我用processDefinition.getId()的值赋给了deleteDeploymentCascade(processDefinitionId)中,
算是学会了一点。
在ProcessDefinition中,有两个id,一个是DbId是long类型的Id,这个是用processDefinition.getDeploymentId()获得;还有一个是id类型是String,一般是“流程名-版本号”的形式。
DbId好像是流程定义的全局唯一Id,id是同一类流程定义的唯一Id。
谢谢了,8楼。