jbpm5.入门。。

最近公司叫搞JBPM5分析出数据库结构。但是新东西。我英文又不好。所以就瞎琢磨。

最后main方法可以运行。数据库可以更改。但是把jar包部署tomcat或jboss成为web项目时。却总是报错。

现在总结一下过程。发出来记录一下。有会弄得高手给指导一下。

 

首先下载:http://www.jboss.org/jbpm  5.0final全部程序

简单安装demo:

    cmd命令行下:

        ant install.demo  (需要联网)

        当完成后

        ant start.demo(所有程序启动完毕即可)

        http://localhost:8080/jbpm-console jbpm web控制台

        http://localhost:8080/drools-guvnor 流程管理(可在线设计流程)

整合到已有环境:

    修改build.properties

    # the home of your JBoss AS installation
    # for example:
    #   jboss.server.version=5.1.0.GA
    #   jboss.home=./jboss-${jboss.server.version}
    jboss.server.version=4.2.3.GA(版本)
    jboss.home=D:/jboss-4.2.3.GA(自己的路径)

    # defines which server configuration should be used
    # for example, if you specify 'default', the application
    # will be deployed to ${jboss.home}/server/default/deploy
    jboss.server.configuration=default

    # the home of your eclipse installation
    # will be used to deploy the Eclipse plugin to
    eclipse.home=E:/8.5eclipse(自己的路径)


    # defines whether you want the birt plugin (for reporting) to be downloaded or not
    # by default this is turned off to avoid having to do a rather large download
    # if you do not download the birt plugin, reporting in the jbpm-console will not work
    # put this property to true if you want to download birt as well
    jBPM.birt.download=true

然后可以执行:

    ant install.guvnor.into.jboss
    ant install.designer.into.jboss
    ant install.jBPM-gwt-console.into.jboss
    ant install.jBPM-eclipse.into.eclipse
(最好手动以连接方式)
    ant install.drools-eclipse.into.eclipse(最好手动以连接方式)

      myeclipse手动连接方式:

    目录:/8.5eclipse/dropins

       3个link文件:

        插件所在目录:jbpm-5.0.0-installer-full/jbpm-installer/lib

        jbpm5.link(jbpm-5.0.0-eclipse-all.zip)

        gef.link(GEF-ALL-3.5.2.zip 没有的话另行下载)

        drool.link(drools-5.2.0.M1-eclipse-all.zip)

        内容:

        path=E://8.5eclipse//eclipse(插件相对应的路径)

然后可以启动:

    Startup database:
    ant start.h2

    Startup JBoss AS:
    ant start.jboss

    Startup task service:
    ant start.human.task

转移数据库:

    目录:jbpm-5.0.0-installer-full/jbpm-installer/db

    persistence.xml

    hibernate.cfg.xml    

    testDS1-ds.xml

    修改这些文件,方言之类的都要改

    目录:jbpm-5.0.0-installer-full/jbpm-installer/db/driver

    放入数据库驱动

程序方面:

    持久化方面:

        需要用到的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.jar  (or other driver)

            btm-1.3.jar

            还有jbpm runtime 的所有jar包

        需要把runtime的jbpm-human-task-5.0.0.jar和jbpm-bam-5.0.0.jar内的有关数据库连接的配置文件全部修改成myeclips

        非web运行时:

           需要手工程序中创建数据源:

            PoolingDataSource ds=new PoolingDataSource();
                    ds.setUniqueName("jdbc/testDS1");
                    ds.setClassName("bitronix.tm.resource.jdbc.lrc.LrcXADataSource");
                    ds.setClassName("com.mysql.jdbc.jdbc2.optional.MysqlXADataSource");
                    //ds.setClassName("org.apache.commons.dbcp.BasicDataSource");
                    ds.setMaxPoolSize(3);
                    ds.setAllowLocalTransactions(true);
                    //ds.getDriverProperties().setProperty("driverClassName", "com.mysql.jdbc.Driver");
                    ds.getDriverProperties().put("user","root");
                    ds.getDriverProperties().put("password", "dcl1300185");
                    ds.getDriverProperties().put("URL", "jdbc:mysql://localhost/test");
                    ds.init();

 

 

          知识库,session的创建,process的执行:

        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
              kbuilder.add(ResourceFactory.newClassPathResource("sample.bpmn"), ResourceType.BPMN2);

        KnowledgeBase kbase = kbuilder.newKnowledgeBase();
                //StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
                ///KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
                // start a new process instance
                //ksession.startProcess("com.sample.bpmn.hello");
                //logger.close();
           
                EntityManagerFactory emf=Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa");
                Environment env = KnowledgeBaseFactory.newEnvironment();
                env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
                 env.set( EnvironmentName.TRANSACTION_MANAGER,
                         TransactionManagerServices.getTransactionManager() );
             

                StatefulKnowledgeSession ksession =
                    JPAKnowledgeService.newStatefulKnowledgeSession( kbase,null, env );
           
                ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new WSHumanTaskHandler());
           

                ksession.startProcess("com.sample.bpmn.hello");

 

        persistence.xml文件的编写:

        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <persistence version="1.0"
                     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
                                     http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
                                     http://java.sun.com/xml/ns/persistence/orm
                                     http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
                     xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xmlns="http://java.sun.com/xml/ns/persistence">
    
          <persistence-unit name="org.jbpm.persistence.jpa" transaction-type="JTA">
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <jta-data-source>jdbc/testDS1</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.MySQLDialect"/>            
              <property name="hibernate.max_fetch_depth" value="3"/>
              <property name="hibernate.hbm2ddl.auto" value="update" />
              <property name="hibernate.show_sql" value="true" />    
              <property name="hibernate.transaction.manager_lookup_class"                  value="org.hibernate.transaction.BTMTransactionManagerLookup" />(这里要千万注意。)
            </properties>        
          </persistence-unit>
    
        </persistence>

        jndi.properties 文件内容:

            java.naming.factory.initial=bitronix.tm.jndi.BitronixInitialContextFactory

        log4j.properties 文件:

            ### direct log messages to stdout ###
            log4j.appender.stdout=org.apache.log4j.ConsoleAppender
            log4j.appender.stdout.Target=System.out
            log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
            log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

            ### direct messages to file hibernate.log ###
            #log4j.appender.file=org.apache.log4j.FileAppender
            #log4j.appender.file.File=hibernate.log
            #log4j.appender.file.layout=org.apache.log4j.PatternLayout
            #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

            ### set log levels - for more verbose logging change 'info' to 'debug' ###

            log4j.rootLogger=warn, stdout

            #log4j.logger.org.hibernate=info
            #log4j.logger.org.hibernate=debug

            ### log HQL query parser activity
            #log4j.logger.org.hibernate.hql.ast.AST=debug

            ### log just the SQL
            #log4j.logger.org.hibernate.SQL=debug

            ### log JDBC bind parameters ###
            #log4j.logger.org.hibernate.type=info
            #log4j.logger.org.hibernate.type=debug

            ### log schema export/update ###
            #log4j.logger.org.hibernate.tool.hbm2ddl=debug

            ### log HQL parse trees
            #log4j.logger.org.hibernate.hql=debug

            ### log cache activity ###
            #log4j.logger.org.hibernate.cache=debug

            ### log transaction activity
            #log4j.logger.org.hibernate.transaction=debug

            ### log JDBC resource acquisition
            #log4j.logger.org.hibernate.jdbc=debug

            ### enable the following line if you want to track down connection ###
            ### leakages when using DriverManagerConnectionProvider ###
            #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
       放置目录:

            jndi.properties

            log4j.properties

            放置:src/main/resources

            persistence.xml

            放置:src/main/resources/META-INF(没有则自行创建)

www.haida360.com

 

目录 第一章 概述 1 1.1 什么是jBPM? 1 1.2 概览 2 1.3 核心引擎 3 1.4 Eclipse编辑器 4 1.5 基于Web的设计5 1.6 jBPM控制台 5 1.7 文档结构 6 第二章 获得开始 7 2.1 下载 7 2.2 获得开始 7 2.3 社区 8 2.4 资源 8 2.41许可证 8 2.42 源代码 9 2.4.3 从源文件构建 9 第三章 安装 9 3.1 必备的 9 3.2 下载 installer 9 3.3 演示安装 10 3.4 10分钟指南: 使用Eclipse工具 10 3.5 10分钟向导:使用jBPM控制台 12 3.6 10分钟指南:使用Guvnor知识库和设计器 13 3.7 如果遇到问题或有问题应该怎么去做 14 3.7 经常被问的问题 14 第四章:核心引擎的API 15 4.1 jBPM API 16 4.11 Knowledge Base 17 4.12 会话 17 4.13 事件 19 4.2. Knowledge-based API 21 第五章 核心引擎:基础 21 5.1 创建一个流程 21 5.1.1 Eclipse BPMN2.0图形编辑器插件 22 5.1.2 使用XML定义流程 22 5.1.3使用流程API定义流程 24 5.2 不同流程构造的细节概述 25 5.3 流程属性的细节 26 5.4 事件细节 26 5.4.1 开始事件 26 5.4.2 结束事件 27 5.4.3 中间事件 28 5.5 动作细节 29 5.5.1 脚本任务 29 5.5.3 服务任务 30 5.5.3 用户任务 31 5.5.4 重用的子流程 32 5.5.5 业务规则任务 32 5.5.6 嵌入子流程 33 5.5.7 多个实例子流程 33 5.6 Gateways 细节 34 5.6.2 合并网关 35 5.7 在你的应用中使用流程 35 5.8 其他特性 36 5.8.1 数据 36 5.8.2 约束 37 5.8.3 动作脚本 38 5.8.4 事件 39 5.8.5 计时器 40 5.8.6 更新流程 41 第六章 BPMN 2.0 核心引擎 43 6.1 Business Process Model and Notation(BPMN)2.0 Specification业务流程建模和符号2.0规范 43 6.2 例子 47 6.3 支持的元素/属性 48 第七章 核心引擎:持久化和事务 54 7.1 运行时状态 54 7.1.1 二进制持久化 54 7.1.2 Safe Pionts 54 7.1.3 配置持久化 55 7.1.4 事务 58 7.2 流程定义 58 7.3 历史日志 59 7.3.1 将流程事件存储到数据库 59 第八章 核心引擎:示例 60 8.1 jBPM示例 60 8.2 示例 61 8.3 单元测试 61 第九章 Eclipse BPMN 2.0 Plugin 62 9.1 安装 62 9.2 创建你的BPMN 2.0 流程 62 9.3 元素和属性的顾虑 65 第十章 设计器 66 10.1 安装 67 第十一章 控制台 68 11.1 安装 68 11.2 运行流程管理控制台 68 11.2.1 管理流程实例 69 11.2.2 人工任务列表 71 11.2.3 报告 72 11.3 添加新的流程/任务表 73 11.4 REST interface 74 第十二章 Human Tasks 75 12.1 流程内的Human tasks 75 12.1.1 Swimlanes 78 12.2 Human task 管理组件 78 12.2.1 任务生命周期 78 12.2.2 将任务组件链接到jBPM引擎 79 12.2.3 启动任务管理组件 81 12.2.4 和任务管理组件的交互 83 12.3 人工任务管理接口 84 12.3.1 Eclipse integration 84 12.3.2 基于Web的任务视图 84 第十三章 特定领域的流程 84 13.1 介绍 84 13.2 示例:通告 85 13.2.1 创建工作定义 86 13.2.2 注册你的工作定义 86 13.2.3 在你的流程中使用你最新的工作条目 87 13.2.4 执行服务节点 89 第十四章 测试和调试 91 14.1 单元测试 91 14.1.1 使用Helper方法创建你的session 92 14.1.2 断言 92 14.1.3测试与外部服务的结合 93 14.1.4 配置持久化 94 14.2 调试 94 14.2.1 流程实例视图 95 14.2.2 人工任务视图 96 14.2.3 核查视图 96 第十五章 流程知识库 97 第十六章 业务活动监视器 99 16.1 报告 99 16.2 直接接入 101 第十七章 复杂流程 102 第十八章 和Maven,OSGi,Spring的整合 105 18.1 Maven 105 18.2 OGSi 107
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值