`

JBPM5配置mysql持久化

 
阅读更多
http://blog.csdn.net/zhouyuqwert/article/details/6753438

参考博文:http://blog.csdn.net/dcl8261425/article/details/6575797
首先需要安装JBPM5和MYSQL。。。。

一、修改JBPM持久化相关配置文件
1、jbpm-installer/db/hibernate.cfg.xml
注释部分为原h2数据库的配置,下同。
<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <!--<property name="connection.driver_class">org.h2.Driver</property>-->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <!--<property name="connection.url">jdbc:h2:tcp://localhost/~/test</property>-->
        <property name="connection.url">jdbc:mysql://localhost:3306/jbpm?useUnicode=true&characterEncoding=UTF-8</property>
        <!--property name="connection.url">jdbc:h2:file:/NotBackedUp/data/mydb</property-->
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <!--<property name="dialect">org.hibernate.dialect.H2Dialect</property>-->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">false</property>

        <!-- Drop and re-create the database schema on startup? -->
        <property name="hbm2ddl.auto">create</property>

        <mapping resource="AuditLog.hbm.xml"/>

    </session-factory>

</hibernate-configuration>



2.jbpm-installer/db/persistence.xml
jta-data-source那一项匹配的是testDS1-ds.xml中jndi-name,自行修改
<persistence-unit name="org.drools.persistence.jpa" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:jdbc/jbpmDatasource</jta-data-source>        
    <class>org.jbpm.persistence.processinstance.ProcessInstanceInfo</class>
    <class>org.drools.persistence.info.SessionInfo</class>
    <class>org.drools.persistence.info.WorkItemInfo</class>
<!--    <properties>
      <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>	        
      <property name="hibernate.max_fetch_depth" value="3"/>
      <property name="hibernate.hbm2ddl.auto" value="create" />
      <property name="hibernate.show_sql" value="false" />	
      <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup" />
    </properties>   --> 
    <properties>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jbpm?useUnicode=true&characterEncoding=UTF-8" />
      <property name="hibernate.connection.username" value="root"/>
      <property name="hibernate.connection.password" value="root"/>
      <property name="hibernate.connection.autocommit" value="true" />
      <property name="hibernate.max_fetch_depth" value="3"/>
      <property name="hibernate.hbm2ddl.auto" value="create" />
      <property name="hibernate.show_sql" value="false" />
    </properties>    
  </persistence-unit>


3.jbpm-installer/db/testDS1-ds.xml
<datasources>
<!--  <local-tx-datasource>
    <jndi-name>jdbc/testDS1</jndi-name>
    <connection-url>jdbc:h2:tcp://localhost/~/test</connection-url>
    --><!--connection-url>jdbc:h2:mem:mydb</connection-url--><!--
    <driver-class>org.h2.jdbcx.JdbcDataSource</driver-class>
    <user-name>sa</user-name>
    <password></password>
  </local-tx-datasource>-->
   <jndi-name>jdbc/jbpmDatasource</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/jbpm?useUnicode=true&characterEncoding=UTF-8</connection-url>
    <!--connection-url>jdbc:h2:mem:mydb</connection-url-->
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>root</password>
</datasources>


4.jbpm-installer/runtime/jbpm-bam.jar/hibernate.cfg.xml
<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/jbpm?useUnicode=true&characterEncoding=UTF-8</property>
        <!--property name="connection.url">jdbc:h2:file:/NotBackedUp/data/mydb</property-->
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">false</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">create</property>

        <mapping resource="AuditLog.hbm.xml"/>

    </session-factory>

</hibernate-configuration>


5.jbpm-installer/runtime/jbpm-human-task-{version}.jar/persistence.xml
<properties>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jbpm?useUnicode=true&characterEncoding=UTF-8" />
      <property name="hibernate.connection.username" value="root"/>
      <property name="hibernate.connection.password" value="root"/>
      <property name="hibernate.connection.autocommit" value="true" />
      <property name="hibernate.max_fetch_depth" value="3"/>
      <property name="hibernate.hbm2ddl.auto" value="create" />
      <property name="hibernate.show_sql" value="false" />
    </properties>



二、相关jar包
mysql驱动包放在jbpm-installer/db/driver中
下载slf4j相关包,http://www.slf4j.org/download.html
下载btm-1.3.2.jar


三、编写TaskServer.java
需要导入JAR包:btm-1.3.2.jar、slf4j-jdk14-1.6.2.jar、mysql驱动包
标注的些地方换成自己相关的就行了
public static final void main(String[] args) {
		
		try {
			
			PoolingDataSource  ds1 = new PoolingDataSource();
		        ds1.setUniqueName( "jdbc/jbpmDatasource" );//这里
		        ds1.setClassName( "com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" );
		        
		        ds1.setMaxPoolSize( 3 );
		        ds1.setAllowLocalTransactions( true );
                       //下面数据库相关 
                       &nbsp;ds1.getDriverProperties().put( "user",
		                                       "root" );
		        ds1.getDriverProperties().put( "password",
		                                       "root" );
		        ds1.getDriverProperties().put( "URL",
		                                     "jdbc:mysql://localhost:3306/jbpm?useUnicode=true&characterEncoding=UTF-8" );
          
	     
	                ds1.init();	
	      			
			EntityManagerFactory emfTask = Persistence.createEntityManagerFactory( "org.jbpm.task" );
			TaskService taskService = new TaskService(emfTask, SystemEventListenerFactory.getSystemEventListener());
			
			
			
			/*
	         * Add the required users 
	         */
	        TaskServiceSession taskSession = taskService.createSession();   
	        taskSession.addUser(new User("Administrator"));
	        taskSession.addUser(new User("krisv")); 
	        taskSession.addUser(new User("john")); 
	        taskSession.addUser(new User("mary")); 
	        
	        /* Start Mina server for HT*/
	        MinaTaskServer server = new MinaTaskServer(taskService);
	        Thread thread = new Thread(server);
	        thread.start();
	        System.out.println("Server started ..."); 
	       
		
		} catch (Throwable t) {
			t.printStackTrace();
		}
	}


好了,剩下的启动TaskServer然后运行下sample中的evaluation试试,完成human task中的任务,没有出错就一切OK了
分享到:
评论

相关推荐

    jbpm7.3+mysql相关配置文件

    MySQL则是广泛使用的开源关系型数据库管理系统,它在jbpm中作为持久化存储的后端数据库。当我们想要将jbpm7.3默认的H2内存数据库替换为MySQL时,需要进行一系列的配置更改,确保数据的稳定性和可扩展性。 首先,...

    jbpm核心配置文件

    4. **持久化设置**:除了使用Hibernate的配置外,jbpm还可能有自己特定的持久化策略,如流程实例的存储。 5. **监听器**:可以添加自定义的事件监听器,以便在流程执行过程中捕获并处理特定事件。 6. **工作流资源...

    JBPM4.4+MySQL完整请假实例

    JBPM(Java Business Process Management)是一款开源的工作流管理系统,它允许开发者设计、部署和执行业务流程,通过与MySQL数据库的集成,可以持久化流程实例和相关数据。 在这个实例中,首先需要安装MySQL数据库...

    jbpm5安装、配置、示例入门

    为了实现持久化功能,您需要以下JAR包: - `org.apache.servicemix.bundles.commons-dbcp-1.2.2_3.jar` - `commons-pool-1.4.jar` - `subethasmtp-wiser-1.2.jar` - `slf4j-nop-1.5.8.jar` - 数据库驱动(例如`mysql...

    JBPM5+Spring+Hibernate+MySQL 请假例子

    Hibernate支持多种数据库,包括MySQL,它提供了透明的数据持久化,事务管理和查询语言HQL,使得数据操作更加便捷。 【MySQL】 MySQL是一款开源、免费的关系型数据库管理系统,以其高性能、高可靠性和易于使用而著称...

    jbpm开发(eclipse3+myeclipse6+mysql5+tomcat6 )

    - `PersistenceService.java`:负责处理持久化对象的操作。 - `FlowService.java`:用于管理流程实例。 下面展示`PersistenceService.java`的部分源代码,以了解其实现细节: ```java package ...

    Myeclipse优化JBPM4.0配置.docx

    Myeclipse优化JBPM4.0配置 ...MyEclipse优化JBPM4.0配置可以实现业务流程管理的自动化,提高开发效率和质量。通过本文的指导,可以快速地在MyEclipse中安装和配置JBPM4.0,实现业务流程管理的自动化。

    jbpm连接mysql数据库的实例以及问题解决方案

    JBPM需要一个持久化存储来保存工作流实例、任务、变量等信息,而MySQL是一个常用的数据库管理系统,适合这种需求。在配置JBPM与MySQL的连接时,你需要在jbpm-datasources.xml文件中设置数据源。确保以下几点: 1. *...

    jBPM(八): 也说jBPM + Tomcat + MySQL

    在配置jBPM时,我们需要这个驱动来建立与MySQL的数据连接,以便持久化流程实例和相关数据。 然后,`jasper-compiler-jdt.jar`和`jasper-compiler.jar`是Apache Tomcat中用于处理JSP(JavaServer Pages)编译的部分...

    jbpm相关入门、配置

    jbpm的配置涉及数据库连接、持久化策略、事务管理等。首先,需要配置数据库连接,jbpm支持多种数据库,如MySQL、PostgreSQL等,通过修改jbpm配置文件(如jbpm-persistence.xml)来指定。其次,jbpm使用Hibernate进行...

    jBPM5 用户手册-中文版.docx

    1. 数据库持久化:jBPM5 支持多种数据库来存储流程数据,例如 MySQL、PostgreSQL 等。 2. 文件持久化:jBPM5 也支持将流程数据存储在文件系统中。 API jBPM5 提供了多种 API 来访问和操作流程,包括: 1. Java ...

    JBPM修改数据库教程以及实例

    在JBPM6中,默认使用H2内存数据库进行存储,但实际生产环境中,我们通常会选择更为稳定且功能强大的MySQL或PostgreSQL作为持久化存储。本教程将指导您如何将JBPM的默认数据库从H2切换到MySQL或PostgreSQL,并提供...

    JBPM3.2.3+TOMCAT 6.0+MYSQL 5.0

    JBPM需要一个可靠的数据库来持久化工作流的状态,以确保在系统重启或其他故障后能够恢复。MySQL 5.0提供了良好的性能和稳定性,对于中小型企业或项目来说是一个经济且实用的选择。 集成过程: 1. 首先,你需要在...

    jbpm开发入门指南

    - **设置数据库**:jbpm使用持久化存储,可以配置MySQL、Oracle等数据库,创建相应的表结构。 - **配置jbpm服务**:通过jbpm提供的配置文件(如jbpm.conf),设置数据库连接、工作内存大小等参数。 - **启动服务*...

    JBPM5入门学习

    4. 配置数据库连接,以便jBPM能持久化流程实例。 5. 创建并部署流程定义(.bpmn文件)到JBPM服务器。 6. 运行和监控流程实例,通过控制台查看流程状态和日志。 通过深入学习,开发者可以利用jBPM的特性,如流程变量...

    jbpm-3.1.4部署jbpm的jar包和moudle的jar包

    4. **配置持久化**:根据你的数据库类型(如MySQL、Oracle等),配置jbpm的持久化XML文件(如persistence.xml),指定数据源和实体类。 5. **初始化引擎**:在代码中创建jbpm的工作流引擎实例,通常通过`...

    JBPM工作流引擎

    3. **持久化管理**:JBPM使用Hibernate作为默认的ORM框架,确保流程实例和相关数据在数据库中的持久化。 4. **规则集成**:JBPM集成了Drools规则引擎,可以在流程中嵌入业务规则,实现灵活的决策逻辑。 5. **事件...

    JBPM5整合HH2完整项目

    - **设置持久化策略**:配置`persistence.xml`文件,指定使用HH2作为数据源,并配置相关的JPA实体。 - **初始化数据库**:使用JBPM提供的DDL脚本创建HH2中的表结构。 - **部署流程定义**:通过JBPM的部署API或...

    JBPM4安装配置文档

    3. **数据存储(Data Persistence)**: 通过JPA(Java Persistence API)或Hibernate,持久化流程实例和相关数据。 4. **工作流服务(Work Item Handlers)**: 提供了与特定技术或系统的集成接口,如电子邮件通知、...

Global site tag (gtag.js) - Google Analytics