配置问题, 苦!
以前用 spring-modules-0.8 中的 3.1 模块配置了 Jbpm + Spring,
但是, 当我使用 Timer 时, 却抛出异常:
org.jbpm.svc.JbpmServiceException: service 'scheduler' unavailable
看来是 scheduler 服务不可用。
查jbpm.cfg.xml 文件, 里面有关于 scheduler 的配置, 如下:
<service factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" name="scheduler">
查了很长时间, 一直不知道什么原因。
今天, 在网上搜索到了一篇文章(CSDN鸟之家), 发现我的配置中少了一个 serlvet。
于是, 加上, 结果, 异常。
还有一个警告:
WARN: no info for object 'jbpmConfiguration'. defined objects: [resource.parsers, resource.mail.templates, jbpm.task.instance.factory, jbpm.mail.smtp.host, jbpm.variable.resolver, resource.action.types, jbpm.byte.block.size, resource.varmapping, resource.business.calendar, resource.default.modules, jbpm.job.executor, resource.node.types, jbpm.mail.address.resolver, default.jbpm.context, resource.converter]
现在我的代码就是以下的样子了。 (有不少是网上摘抄的, 不要告我侵权啊, 我只想解决异常, 嘿嘿。)
除了 scheduler, 一切正常, 愁啊!!!!!!!!
环境:
IDE: IntelliJ IDEA 6.0.4
JDK: 1.6.0_02
DB: MySQL 5.0.41
Jbpm: 3.2 GA
Spring: 2.0.6
Spring-modules: 0.8
Hibernate: 3.2.4
Spring 的 jbpm.xml
</service>
xml 代码
- xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:jee="http://www.springframework.org/schema/jee"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">
-
- <description>JBPM Configure File<!---->description>
-
-
- <bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
- <property name="sessionFactory">
- <ref bean="sessionFactory"/>
- <!---->property>
- <property name="configuration">
- <value>/WEB-INF/jbpm.cfg.xml<!---->value>
- <!---->property>
- <property name="createSchema">
- <value>false<!---->value>
- <!---->property>
- <!---->bean>
-
- <bean id="jbpmTemplate" class="org.springmodules.workflow.jbpm31.JbpmTemplate">
- <constructor-arg index="0" ref="jbpmConfiguration"/>
- <!---->bean>
-
- <!---->beans>
jbpm.cfg.xml
xml 代码
- <jbpm-configuration>
-
- <jbpm-context>
- <service name="persistence" factory="org.jbpm.persistence.db.DbPersistenceServiceFactory"/>
- <service name="tx" factory="org.jbpm.tx.TxServiceFactory"/>
- <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory"/>
- <service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory"/>
- <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory"/>
- <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory"/>
- <!---->jbpm-context>
-
-
-
-
-
- <string name="resource.business.calendar" value="org/jbpm/calendar/jbpm.business.calendar.properties"/>
- <string name="resource.default.modules" value="org/jbpm/graph/def/jbpm.default.modules.properties"/>
- <string name="resource.converter" value="org/jbpm/db/hibernate/jbpm.converter.properties"/>
- <string name="resource.action.types" value="org/jbpm/graph/action/action.types.xml"/>
- <string name="resource.node.types" value="org/jbpm/graph/node/node.types.xml"/>
- <string name="resource.parsers" value="org/jbpm/jpdl/par/jbpm.parsers.xml"/>
- <string name="resource.varmapping" value="org/jbpm/context/exe/jbpm.varmapping.xml"/>
- <string name="resource.mail.templates" value="jbpm.mail.templates.xml"/>
-
- <int name="jbpm.byte.block.size" value="1024" singleton="true"/>
- <string name="jbpm.mail.smtp.host" value="localhost"/>
- <bean name="jbpm.task.instance.factory" class="org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl"
- singleton="true"/>
- <bean name="jbpm.variable.resolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver" singleton="true"/>
- <bean name="jbpm.mail.address.resolver" class="org.jbpm.identity.mail.IdentityAddressResolver" singleton="true"/>
-
-
- <bean name="jbpm.job.executor" class="org.jbpm.job.executor.BpmJobExecutor">
- <field name="jbpmConfiguration">
- <ref bean="jbpmConfiguration"/>
- <!---->field>
- <field name="name">
- <string value="JbpmJobExector"/>
- <!---->field>
- <field name="nbrOfThreads">
- <int value="1"/>
- <!---->field>
- <field name="idleInterval">
- <int value="5000"/>
- <!---->field>
- <field name="maxIdleInterval">
- <int value="3600000"/>
- <!---->field>
-
- <field name="historyMaxSize">
- <int value="20"/>
- <!---->field>
- <field name="maxLockTime">
- <int value="600000"/>
- <!---->field>
-
- <field name="lockMonitorInterval">
- <int value="60000"/>
- <!---->field>
-
- <field name="lockBufferTime">
- <int value="5000"/>
- <!---->field>
-
- <!---->bean>
- <!---->jbpm-configuration>
org.jbpm.job.executor.BpmJobExecutor
java 代码
- public class BpmJobExecutor extends JobExecutor {
- public static JbpmConfiguration jbpmConfig;
-
- public synchronized void start() {
- jbpmConfiguration = jbpmConfig;
- super.start();
- }
-
- public static void setJbpmConfiguration(JbpmConfiguration config) {
- jbpmConfig = config;
- }
- }
com.rathink.bpm.servlet.JobExecutorServlet
java 代码
- public class JobExecutorServlet extends HttpServlet {
-
- private static final long serialVersionUID = 1L;
-
- JbpmConfiguration jbpmConfiguration;
-
- public void init() throws ServletException {
- JbpmTemplate jbpmTemplate = (JbpmTemplate) WebApplicationContextUtils
- .getWebApplicationContext(this.getServletContext()).getBean(
- "jbpmTemplate");
- jbpmConfiguration = jbpmTemplate.getJbpmConfiguration();
- BpmJobExecutor.setJbpmConfiguration(jbpmConfiguration);
- jbpmConfiguration.startJobExecutor();
- }
-
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- PrintWriter out = response.getWriter();
- out.println("");
- out.println("");
- out.println("
JBoss jBPM Scheduler Servlet
);
- Collection threads = jbpmConfiguration.getJobExecutor().getThreads().values();
- for (Object thread1 : threads) {
- Thread thread = (Thread) thread1;
- out.println("
" + thread.getName() + "
");
- out.println("isAlive:" + thread.isAlive());
- }
- out.println("");
- out.println("");
- }
-
- String getInitParameter(String name, String defaultValue) {
- String value = getInitParameter(name);
- if (value != null) {
- return value;
- }
- return defaultValue;
- }
- }
web.xml
xml 代码
- ......
- <servlet>
- <servlet-name>JobExecutorServlet<!---->servlet-name>
- <servlet-class>com.rathink.bpm.servlet.JobExecutorServlet<!---->servlet-class>
- <load-on-startup>3<!---->load-on-startup>
- <!---->servlet>
-
- <servlet-mapping>
- <servlet-name>JobExecutorServlet<!---->servlet-name>
- <url-pattern>/jobexecutor<!---->url-pattern>
- <!---->servlet-mapping>
- ......
分享到:
相关推荐
spring+jbpm的配置示例,jbpm配置,希望大家一起进行学习,共同提高
Struts+Hibernate+spring+jpa+lucene+jbpm+compass配置文件
Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合 超级详细的文档,透彻讲解JBPM与SSH的整合过程
SSH最新项目,以前上传过一个SSH项目,上传的是最开始的,没有什么技术,有位老兄下了评论我才知道的,这回是很全的项目(太大,没有包不好意思)
2 项目有完善的spring和jbpm集成方法,jbpm版本是6,jbpm5和jbpm6版本差异较大,配置差异也很大,切记 3 用的数据库为mysql,在运行的时候,会自动在数据库中建立jbpm工作流的表。 4 可以根据自己的项目自行集成。
本工程为struts1.1+spring1.2+hibernate3.0+jbpm3.1.4 可以tomcat下运行,可通过图形模式发布工程,配置了在网页显示jbpm流程图的标签文件。 由于不能上传10M以上的包,本工程分为3个部分上传
spring4.1.1+jbpm6.4.0+maven
jbpm5.4 spring mvc 集成开发 Jetty maven JTA 事务等配置!
spring2.5.4+hibernate3.2.6+struts2+jbpm3.2.2配置方法
在spring3中整合jbpm5的例子,前台用spring mvc3做了简单的页面。 其中用到了jbpm5的persistence,local human service等,简单、完整。 用的mysql数据库,修改下spring datasource的配置,然后用mvn jetty:run编译...
对struts+spring+hibernate框架整合的配置信息
帮您实现spring2.5.4+hibernate3.2.6+struts2+jbpm3.2.2的整合配置
配置说明见: http://panyongzheng.iteye.com/blog/1872035
1-版本以及系统配置jbpm版本3.2.3http://www.jboss.com/products/jbpm下载后的文件是jbpm-jpdl-suite-3.2.3.zip,解压缩,可以直接通过JBOSS方式启动。http://localhost:XXXX/jbpm-console。jbpm-jpdl-3.2.3下各...
而所谓抱Spring的腿,无外乎三点:一是通过Spring暴露出服务,将服务配置到Spring的IOC容器里;二是在自己的运行环境里访问到Spring的IOC容器,能够轻松使用Spring容器里所配置的服务;三是对于具有事务管理特性的...
引入Spring的配置管理(app-jbpm.xml)同时,由于Jbpm提供对于Spring的较好支持,所以我们加入app-jbpm.xml,其配置如下:<?>
JBoss jBPM 实例说明 struts1.1+spring1.2+hibernate3.0+jbpm3.1.4可以tomcat下运行,可通过图形模式发布工程,配置了在网页显示jbpm流程图的标签文件。
框架整合配置文件:Spring整合JBPM、日志、数据库、ehcache的配置文件
本工程为struts1.1+spring1.2+hibernate3.0+jbpm3.1.4 可以tomcat下运行,可通过图形模式发布工程,配置了在网页显示jbpm流程图的标签文件。 由于不能上传10M以上的包,本工程分为3个部分上传