刘政道 - 应用程序框架

《31天学会CRM项目开发(C#编程入门及项目实战)》作者,IT经理,程序员
  博客园  :: 新随笔  :: 联系 :: 管理

手动启动JobExecutorServlet

Posted on 2010-02-04 15:37  刘政道  阅读(271)  评论(0编辑  收藏  举报
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配置。