`
Kyll
  • 浏览: 104070 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Jbpm + Spring 配置

    博客分类:
  • Java
阅读更多
配置问题, 苦!

以前用 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 代码
 
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.        xmlns:jee="http://www.springframework.org/schema/jee"  
  5.        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
  6.             http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">  
  7.   
  8.     <description>JBPM Configure File<!---->description>  
  9.   
  10.     <!---->  
  11.     <bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">  
  12.         <property name="sessionFactory">  
  13.             <ref bean="sessionFactory"/>  
  14.         <!---->property>  
  15.         <property name="configuration">  
  16.             <value>/WEB-INF/jbpm.cfg.xml<!---->value>  
  17.         <!---->property>  
  18.         <property name="createSchema">  
  19.             <value>false<!---->value>  
  20.         <!---->property>  
  21.     <!---->bean>  
  22.   
  23.     <bean id="jbpmTemplate" class="org.springmodules.workflow.jbpm31.JbpmTemplate">  
  24.         <constructor-arg index="0" ref="jbpmConfiguration"/>  
  25.     <!---->bean>  
  26.     <!---->  
  27. <!---->beans>  


jbpm.cfg.xml
xml 代码
 
  1. <jbpm-configuration>  
  2.   
  3.     <jbpm-context>  
  4.         <service name="persistence" factory="org.jbpm.persistence.db.DbPersistenceServiceFactory"/>  
  5.         <service name="tx" factory="org.jbpm.tx.TxServiceFactory"/>  
  6.         <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory"/>  
  7.         <service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory"/>  
  8.         <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory"/>  
  9.         <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory"/>  
  10.     <!---->jbpm-context>  
  11.   
  12.     <!---->  
  13.     <!---->  
  14.   
  15.     <!---->  
  16.     <string name="resource.business.calendar" value="org/jbpm/calendar/jbpm.business.calendar.properties"/>  
  17.     <string name="resource.default.modules" value="org/jbpm/graph/def/jbpm.default.modules.properties"/>  
  18.     <string name="resource.converter" value="org/jbpm/db/hibernate/jbpm.converter.properties"/>  
  19.     <string name="resource.action.types" value="org/jbpm/graph/action/action.types.xml"/>  
  20.     <string name="resource.node.types" value="org/jbpm/graph/node/node.types.xml"/>  
  21.     <string name="resource.parsers" value="org/jbpm/jpdl/par/jbpm.parsers.xml"/>  
  22.     <string name="resource.varmapping" value="org/jbpm/context/exe/jbpm.varmapping.xml"/>  
  23.     <string name="resource.mail.templates" value="jbpm.mail.templates.xml"/>  
  24.   
  25.     <int name="jbpm.byte.block.size" value="1024" singleton="true"/>  
  26.     <string name="jbpm.mail.smtp.host" value="localhost"/>  
  27.     <bean name="jbpm.task.instance.factory" class="org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl"  
  28.           singleton="true"/>  
  29.     <bean name="jbpm.variable.resolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver" singleton="true"/>  
  30.     <bean name="jbpm.mail.address.resolver" class="org.jbpm.identity.mail.IdentityAddressResolver" singleton="true"/>  
  31.   
  32.     <!---->  
  33.     <bean name="jbpm.job.executor" class="org.jbpm.job.executor.BpmJobExecutor">  
  34.         <field name="jbpmConfiguration">  
  35.             <ref bean="jbpmConfiguration"/>  
  36.         <!---->field>  
  37.         <field name="name">  
  38.             <string value="JbpmJobExector"/>  
  39.         <!---->field>  
  40.         <field name="nbrOfThreads">  
  41.             <int value="1"/>  
  42.         <!---->field>  
  43.         <field name="idleInterval">  
  44.             <int value="5000"/>  
  45.         <!---->field>  
  46.         <field name="maxIdleInterval">  
  47.             <int value="3600000"/>  
  48.         <!---->field>  
  49.         <!---->  
  50.         <field name="historyMaxSize">  
  51.             <int value="20"/>  
  52.         <!---->field>  
  53.         <field name="maxLockTime">  
  54.             <int value="600000"/>  
  55.         <!---->field>  
  56.         <!---->  
  57.         <field name="lockMonitorInterval">  
  58.             <int value="60000"/>  
  59.         <!---->field>  
  60.         <!---->  
  61.         <field name="lockBufferTime">  
  62.             <int value="5000"/>  
  63.         <!---->field>  
  64.         <!---->  
  65.     <!---->bean>  
  66. <!---->jbpm-configuration>  


org.jbpm.job.executor.BpmJobExecutor
java 代码
 
  1. public class BpmJobExecutor extends JobExecutor {  
  2.     public static JbpmConfiguration jbpmConfig;  
  3.   
  4.     public synchronized void start() {  
  5.         jbpmConfiguration = jbpmConfig;  
  6.         super.start();  
  7.     }  
  8.   
  9.     public static void setJbpmConfiguration(JbpmConfiguration config) {  
  10.         jbpmConfig = config;  
  11.     }  
  12. }  


com.rathink.bpm.servlet.JobExecutorServlet
java 代码
 
  1. public class JobExecutorServlet extends HttpServlet {  
  2.   
  3.     private static final long serialVersionUID = 1L;  
  4.   
  5.     JbpmConfiguration jbpmConfiguration;  
  6.   
  7.     public void init() throws ServletException {  
  8.         JbpmTemplate jbpmTemplate = (JbpmTemplate) WebApplicationContextUtils  
  9.                 .getWebApplicationContext(this.getServletContext()).getBean(  
  10.                 "jbpmTemplate");  
  11.         jbpmConfiguration = jbpmTemplate.getJbpmConfiguration();  
  12.         BpmJobExecutor.setJbpmConfiguration(jbpmConfiguration);  
  13.         jbpmConfiguration.startJobExecutor();  
  14.     }  
  15.   
  16.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  17.         PrintWriter out = response.getWriter();  
  18.         out.println("");  
  19.         out.println("");  
  20.         out.println("

    JBoss jBPM Scheduler Servlet

    );  
  21.         Collection threads = jbpmConfiguration.getJobExecutor().getThreads().values();  
  22.         for (Object thread1 : threads) {  
  23.             Thread thread = (Thread) thread1;  
  24.             out.println("

    " + thread.getName() + "

    "
    );  
  25.             out.println("isAlive:" + thread.isAlive());  
  26.         }  
  27.         out.println("");  
  28.         out.println("");  
  29.     }  
  30.   
  31.     String getInitParameter(String name, String defaultValue) {  
  32.         String value = getInitParameter(name);  
  33.         if (value != null) {  
  34.             return value;  
  35.         }  
  36.         return defaultValue;  
  37.     }  
  38. }  


web.xml
xml 代码
 
  1. ......  
  2.     <servlet>  
  3.         <servlet-name>JobExecutorServlet<!---->servlet-name>  
  4.         <servlet-class>com.rathink.bpm.servlet.JobExecutorServlet<!---->servlet-class>  
  5.         <load-on-startup>3<!---->load-on-startup>  
  6.     <!---->servlet>  
  7.   
  8.     <servlet-mapping>  
  9.         <servlet-name>JobExecutorServlet<!---->servlet-name>  
  10.         <url-pattern>/jobexecutor<!---->url-pattern>  
  11.     <!---->servlet-mapping>  
  12. ......  
分享到:
评论
1 楼 rmn190 2009-03-26  
看下这个类: org.jbpm.web.JbpmThreadsServlet

相关推荐

    jbpm+spring配置

    【jbpm+spring配置】是将业务流程管理(Business Process Management, BPM)框架jbpm与企业级应用开发框架Spring相结合的实践。jbpm是一个开源的BPM解决方案,它提供了流程定义、执行、监控和管理的一整套工具。而...

    jbpm+spring的web简单借款工作流实例项目

    【jbpm+spring web简单借款工作流实例项目详解】 jbPM(Java Business Process Management)是一个开源的工作流程管理系统,它提供了一套完整的业务流程自动化解决方案,包括流程设计、部署、执行、监控和管理等...

    jbpm + spring + struts 项目

    2. 配置Spring框架,设置数据源连接到你的MySQL数据库,并配置jbpm的相关bean。 3. 配置Struts2框架,定义Action类和对应的视图模板。 4. 将项目部署到应用服务器,如Tomcat或Jetty。 5. 测试项目,确保所有流程和...

    Struts+Hibernate+spring+jpa+lucene+jbpm+compass配置文件

    整合这些技术时,开发者通常会创建一个综合的配置文件体系,例如Spring的配置文件可以管理所有组件的依赖和配置,通过引入Struts、Hibernate、JPA、Lucene、JBPM和Compass的相关配置。这需要对每个框架的原理有深入...

    jbpm+spring的web简单借款工作流实例项目.rar

    1. 项目源码:包含Java源文件和配置文件,如Spring的bean配置、jbpm的流程定义文件等。 2. 数据库脚本:用于创建和初始化数据库表,存储流程实例、任务、变量等信息。 3. 测试用例:展示如何单元测试和集成测试流程...

    jbpm + struts + spring + tomcat

    FlowTest01可能是该项目中的一个流程测试示例,它可能包含了jbpm流程定义文件、Struts动作配置、Spring的bean配置以及相关的Java源代码。这个测试案例可以帮助初学者理解如何在实际应用中结合这些技术,实现业务流程...

    jbpm4整合struts2+spring2.5+hibernate3.3

    配置文件是整合的关键部分,例如jbpm.cfg.xml是jbpm的主要配置文件,通常需要导入多个子配置,如jbpm.spring.default.cfg.xml、jbpm.spring.hibernate.cfg.xml等,这些配置文件会定义流程引擎、Spring上下文、...

    jbpm4+spring+hibernate

    在整合过程中,通常会创建一个Spring配置文件,其中包含Jbpm4和Hibernate的相关配置。例如,会配置Jbpm4的数据源、流程引擎工厂,以及Hibernate的SessionFactory。同时,需要确保所有必需的JAR文件,包括Jbpm4、...

    Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合

    这些问题通常需要检查配置文件的正确性,例如Spring的bean配置、Struts2的Action配置以及JBPM的流程定义。同时,确保所有的jar包都已经正确引入且版本匹配。 **5. 请假流程例子(S2SH+JBPM)** 这个例子展示了如何...

    JBPM4.4+spring+ext整合

    - **配置Spring**:在Spring配置文件中定义JBPM相关的bean,如TaskService、ProcessEngine等。 - **集成EXT**:建立EXT客户端应用,连接到Spring MVC或RESTful服务,获取并展示流程信息。 - **工作流接口**:在...

    SSH最新项目(struts+spring +hibernate+Jbpm+freemarker)

    2. **Spring**:Spring是Java企业级应用的核心框架,提供依赖注入(DI)和面向切面编程(AOP)等功能,简化了组件的配置和管理。Spring还包含了Spring MVC,与Struts类似,用于构建Web应用的控制器。在这个项目中,...

    struts+hibernate+spring+jbpm智能工作流系统

    Struts、Hibernate、Spring 和 jBPM 是四个在企业级应用开发中广泛使用的开源框架,它们结合在一起可以构建出高效且灵活的智能工作流系统。下面将分别介绍这些技术及其在工作流系统中的作用。 **Struts** Struts 是...

    jbpm+ssh整合

    【jbpm+ssh整合】是将企业级工作流引擎jbpm与流行的SSH(Struts、Spring、Hibernate)框架集成,实现一个完整的业务流程管理系统。jbpm是一个开源的工作流引擎,可以处理复杂的业务流程自动化,而SSH是Java开发中...

    struts2+spring+hibernate+jbpm工作流实例

    Struts2、Spring、Hibernate和Jbpm是Java开发中常用的技术栈,它们结合在一起可以构建出高效、灵活的企业级应用。在这个“struts2+spring+hibernate+jbpm工作流实例”中,主要展示了如何利用这些技术实现一个公文...

    spring+struts+hibernate+jbpm +dwr整合开发的OA办公系统源码

    这是一个基于Java技术栈,采用Spring、Struts、Hibernate、jbpm和DWR等多种框架整合开发的OA(Office Automation)办公系统源码项目。这个系统的构建旨在实现企业的日常办公自动化,提高工作效率,简化工作流程,...

    SpringMVC+jbpm+ibatis+Hibernate框架

    这个实例可能包含了配置文件(如spring.xml、hibernate.cfg.xml)、实体类(Entity)、DAO接口和实现(Data Access Object)、服务层接口和实现(Service)、控制器(Controller)以及流程定义文件(jbpm的工作流...

    jbpm+S2SH请假流程经典实现及源码

    在S2SH框架中,你需要了解如何配置Struts2的Action、Spring的Service以及Hibernate的DAO层,以便将请假申请的提交、审批等操作与jbpm的工作流引擎对接。同时,Spring的AOP(面向切面编程)可以用来实现细粒度的权限...

    jbpm_ssh.zip_jbpm+ssh

    **jbpm+ssh** 的集成意味着开发者可以在Spring中配置jbpm的工作流服务,通过Struts处理用户交互,而Hibernate则负责数据持久化。这种集成可以提供一个统一的平台,用于处理复杂的业务流程和数据管理,同时利用SSH的...

    jBPM4.3+struts2.1.8+spring2.5整合

    3. **Spring配置:** 掌握Spring的IoC容器和AOP,配置服务bean,并为jBPM和Struts2提供依赖注入。 4. **数据源集成:** jBPM和Spring通常都需要数据库支持,需要配置数据源并确保它们共享同一个数据库连接。 5. **...

Global site tag (gtag.js) - Google Analytics