刚接触 jbpm 刚才遇到这个错误:
closed JbpmContext in different order then they were created... check your try-finally's around JbpmContexts blocks
我百思不得其解 ,网上说是 hibernate的 session没关闭,在搜索也就是javaeye那几个。查看了源代码 有这句话:
if (jbpmContext!=popped) {
throw new JbpmException("closed JbpmContext in different order then they were created... check your try-finally's around JbpmContexts blocks");
}
因为设置的有一个filter
<filter>
<filter-name>JbpmContextFilter</filter-name>
<filter-class>org.jbpm.web.JbpmContextFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>JbpmContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
所以我大概猜到了,这个filter对于每一次请求都会产生一个jbpmContext ,所以它要和你当前jsp页面中的jbpmContext对象与已经通过filter产生对比,如果不一样就抱这个错误,正好看到 有这个方法
JbpmContext jbpmContext = JbpmConfiguration.getInstance().getCurrentJbpmContext();
而我之前用的是:
JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
所以知道了。和Hibernate中的session差不多啦。找到答案!