DroolsWorkbench7.8.Final+SpringBoot实现动态规则
⼀、 Drools Workbench安装
1.    下载Drools Workbench
选择下载Tomcat 8 WAR
2. 将war包解压到Tomcat安装⽬录下的webapps⽂件夹下,并改名为kie-drools-wb
3. 根据解压⽂件夹下的
下载相关依赖包(到maven下载,)
javax.security.jacc-api-1.6.jar
kie-tomcat-integration-7.8.0.Final.jar
slf4j-api-1.7.25.jar
将依赖包放⼊tomcat\lib ⽬录下
4. 进⼊tomcat\bin⽬录 创建 setenv.bat(⼀⾏写完,注意空格):
set CATALINA_OPTS=-Xmx512M
-Djava.security.fig=$CATALINA_HOME/webapps/kie-drools-wb/WEB-INF/fig
-Dorg.jboss.logging.provider=jdk
5.进⼊tomcat\conf⽬录配置 l和l
5.l 在最后<Host></Host>中加⼊:
<Valve className="org.at.JACCValve" />
5.l 添加 roles and users:
<role rolename="analyst"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin"/>
<user username="analyst" password="analyst" roles="analyst"/>
6.启动tomcat(startup.bat)  ⽤户名:admin 密码:admin
⼆、Spring Boot中集⼊Drools    1. pom依赖
<groupId>org.kie</groupId>
<artifactId>kie-spring</artifactId>
<version>7.8.0.Final</version>
<!--排除冲突版本依赖-->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<version>7.8.0.Final</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
<version>7.8.0.Final</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-ci</artifactId>
<version>7.8.0.Final</version>
</dependency>
<!--使⽤workbench⽣成的规则jar包,版本号只试了这种格式,⽆SNAPSHOT没有试过--> <dependency>
<groupId&space</groupId>
<artifactId>Test</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
2. 加载Drools规则并设置定时动态扫描
2.1 利⽤Java注解⾃动注⼊KieSession Bean
public class DroolsAutoConfig {
private KieContainer kieContainer;
public DroolsAutoConfig(){
KieServices ks = ();
ReleaseId releaseId = ks.newReleaseId( "space", "Test", "1.0.0-SNAPSHOT" );
kieContainer = ks.newKieContainer(releaseId);
if(kieContainer == null){
}
KieScanner kieScanner = ks.newKieScanner(kieContainer);
kieScanner.start(10000L);
}
public KieServices getKieServices(){
return ();
}
@Bean
@ConditionalOnMissingBean(KieSession.class)
public KieSession kieSession(){
jfinal jar包下载wKieSession();
}
}
2.2  KieSession使⽤
将需要匹配的实体类对象加⼊keiSession中:
遇到的问题:
1.  规则jar包加⼊后,启动Spring Boot时报错:
这个错误是因为本地资源库⾥⾯,该依赖的jar包未下载
将jar包加⼊本地资源库后,启动成功,测试匹配规则成功
2. 修改workbench中⽣成jar包保存地址:
添加环境变量:M2_HOME,MAVEN_HOME,并在Path中添加%MAVEN_HOME%/bin变量(为什么是两个,我也不知道,当时配了MAVEN_HOME未⽣效,加了M2_HOME后成功修改),另外修改maven安装⽬录下的l中的local标签值【重启电脑后⽣效】
修改结果:
在setenv.bat/setenv.sh中添加-ding=UTF-8,指定⽂件编码格式

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。