使用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配置.
[火星人 ] 手動啟動JobExecutorServlet已經有279次圍觀