start JobExecutorServlet by manual
使用Jbpm的朋友对JobExecutorServlet不会陌生。
我
在web.xml中进行了如下配置
<servlet>
<servlet-name>JobExecutorServlet</servlet-name>
<servlet-class>org.jbpm.job.executor.JobExecutorServlet</servlet-
class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JobExecutorServlet</servlet-name>
<url-pattern>/jobexecutor</url-pattern>
</servlet-mapping>
这样,当Tomcat启动
时,JobExecutorServlet也会自动启动。
load-on-startup的
值可以设置成1,2,3或-1,表示启动顺序,如果是-1的话表示不启动。
JobExecutorServlet 自动启动给我带来了一些麻烦,导致正常应用系统启动不起来或者错误。其中一个原因就是我在Jbpm的Job中放置了一些代码,这些代码会调用应用系统中的
某些javabean,因为应用系统启动没有JobExecutorServlet快,就导致了错误。
刚
开始,我总是在启动tomcat的同时去启动应用系统(向浏览器发送请求),如果迅速的话可以避免错误,但是如果慢的话,可能就会产生错误。
后来,想想,能不能手动启动
JobExecutorServlet呢?等我需要的时候在启动它。回答是肯定的。
JbpmConfiguration.getInstance().startJobExecutor();
这个地方必须使用JbpmConfiguration,而不是自己创建的
jbpmConfiguration对象或实例,要不然将不会有任何现象。
记得要注释掉
web.xml中的JobExecutorServlet配置。