drools 6.4.0 和spring集成

来源:互联网 发布:最好wifi密码破解软件 编辑:程序博客网 时间:2024/06/03 10:36

这几天在研究规则引擎 然后使用了drools 不过这方面的资料实在是少的头疼,经过几天的摆弄,终于和spring集成上了。
spring-drools.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:kie="http://drools.org/schema/kie-spring"        xsi:schemaLocation="    http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans.xsd    http://drools.org/schema/kie-spring    https://raw.github.com/droolsjbpm/droolsjbpm-integration/master/kie-spring/src/main/resources/org/kie/spring/kie-spring-6.0.0.xsd">    <!--没有org.kie.spring.KModuleBeanFactoryPostProcessor bean定义,KIE Spring集成将不工作。-->    <!-- 每5分钟扫描是否有新版本文件  enableScanner表示是否扫描   scannerInterval表示扫描间隔-->    <kie:import releaseId-ref="sptringweb" enableScanner="true" scannerInterval="12000" />    <!--这里我使用 drools workbench 生成的-->    <kie:releaseId id="sptringweb" groupId="org.hc" artifactId="wkk" version="LATEST"/>    <bean id="kiePostProcessor" class="org.kie.spring.annotations.KModuleAnnotationPostProcessor" />    <kie:kmodule id="kmodule" >  <!-- 起名规范就可以 -->    <kie:kbase name="PointDomainKB" packages="test.drools.drools"><!-- 起名规范就可以    packages=/指到最后一层文件夹/  -->        <kie:ksession name="PointDomainKS" type="stateless"> <!-- 起名规则就可以,这个的name 是要在下面的测试类中用到的 -->        </kie:ksession>    </kie:kbase></kie:kmodule></beans>

junit

    @KSession("PointDomainKS")    @KReleaseId(groupId = "org.hc", artifactId = "wkk", version = "LATEST")    private KieSession kieSession;    @Test    public void snapshot() throws InterruptedException {        PointDomain pointDomain = new PointDomain();            pointDomain.setBirthDay(true);            kieSession.insert(pointDomain);            kieSession.fireAllRules();    }

workbench 配置
我在官网下载 Tomcat 7+ WAR http://download.jboss.org/drools/release/6.4.0.Final/kie-drools-wb-distribution-wars-6.4.0.Final-tomcat7.war

一、添加依赖包
1.btm-2.1.4.jar
2.btm-tomcat55-lifecycle-2.1.4.jar
3.h2-1.3.168.jar
4.jboss-jacc-api_1.4_spec-1.0.3.Final.jar
5.jta-1.1.jar
6.kie-tomcat-integration-6.3.0.Final.jar
7.slf4j-api-1.7.7.jar
8.mysql-connector-java-5.1.38.jar

二、修改D:\tomcat7\webapps\kie-drools\WEB-INF\classes\META-INF目录下的persistence.xml文件

把该项目原来使用的H2Dialect改成MySQL5Dialect

 <properties>            <!--property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/-->            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>            <property name="hibernate.max_fetch_depth" value="3"/>            <property name="hibernate.hbm2ddl.auto" value="update"/>            <property name="hibernate.show_sql" value="false"/>            <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.BTMTransactionManagerLookup"/>          <property name="hibernate.id.new_generator_mappings" value="false"/>       </properties> 

三、
在tomcat的conf目录下增加一个文件名为:btm-config.properties的文件

 bitronix.tm.serverId=tomcat-btm-node0  bitronix.tm.journal.disk.logPart1Filename=${btm.root}/work/btm1.tlog  bitronix.tm.journal.disk.logPart2Filename=${btm.root}/work/btm2.tlog  bitronix.tm.resource.configuration=${btm.root}/conf/resources.properties

四、在tomcat的conf目录下增加一个文件名为:resources.properties的文件

    resource.ds1.className=bitronix.tm.resource.jdbc.lrc.LrcXADataSource      resource.ds1.uniqueName=jdbc/jbpm      resource.ds1.minPoolSize=10      resource.ds1.maxPoolSize=20      resource.ds1.driverProperties.driverClassName=com.mysql.jdbc.Driver      resource.ds1.driverProperties.url=jdbc:mysql://192.168.0.101:3306/drools?useUnicode=true&characterEncoding=UTF-8      resource.ds1.driverProperties.user=kie      resource.ds1.driverProperties.password=aaaaaa      resource.ds1.allowLocalTransactions=true  

五、在tomcat的conf目录下修改context.xml
派生到我的代码片

<Resource name="jdbc/jbpm" auth="Container" type="javax.sql.DataSource"               driverClassName="com.mysql.jdbc.Driver"           url="jdbc:mysql://192.168.0.101:3306/drools?useUnicode=true&characterEncoding=UTF-8"           username="kie"           password="aaaaaa"           maxActive="20"           maxIdle="1"         maxWait="5000" />

六、在tomcat的conf目录下修改server.xml(记得一定要在上部加入)

七、在tomcat的conf目录下修改tomcat-users.xml

<user username="kie" password="kie" roles="admin,manager,manager-gui"/>  

这里需要注意的就是数据库链接地址和用户名和密码了 一定要填对
只要启动成功 会自动在指定的库中建立表结构。

输入url 进入登陆界面
这里写图片描述

登陆进去之后点击这里写图片描述

然后再这里写图片描述
新建项目填写信息。
之后新建DRL文件和java对象()
之后点击这里写图片描述
这里写图片描述
构建成功后会有相应提示。
之后点击这里写图片描述
会看到自己写的项目 这里写图片描述
然后点击刚构建好的pom 打开复制下面两句话 放入自己的pom.xml里这里写图片描述

然后引入drool 相关的jar包 即可
这样就和spring集成完毕。

我在集成中遇到的问题就一个配置好的pom 下载jar的时候缺用户名密码错误
原因是因为我电脑中又两个maven 一个是系统自带的,一个是我自己装的 我在自己装的里面配置了guvnor-m2-repo 的用户名密码 但是没在系统自带的里面配置 然后就下不下jar包 我也查了很多资料 应该是drool 回去找我本机自带的maven 然后我在自带的maven 的settings里配置了用户名密码就ok了

0 0
原创粉丝点击