生成POJO类时,如果要生成构造函数的话,在有参或者无参构造函数中一定要写
否则在drl中写
就会报下面这种错误。
2、编写非spring 注入的原始配置文件时 要注意
3、在具体的实现类中,如果keisession 的值与配置文件中的ksession标签的name 值不一样。 会报如下错误
编写时要注意
4、通过maven 整合drools+spring时 要注意:
是否有规则引擎文件 如果没有 就加上。。 否则找不到相关规则引擎,
在pom.xml配置文件也可以写下面这段代码也可以解决spring找不到规则文件的问题
<build>
<testResources>
<testResource>
<directory>
${project.basedir}/src/main/resources
</directory>
</testResource>
</testResources>
</build>
5、关于规则流的问题
版本问题
Drools6.4api的话 rf是不支持的
虽然不会抛异常 但会显示
6、关于语法 when 条件中or 的使用 or 在java中会出现短路机制,所以在使用时要注意。如果下面有引用when条件中的属性,要避免or的使用。
7、workbench做依赖关系时 要注意,当A项目被B项目引用时,A项目发生变化后,B项目中所引用的A项目不发生变化
workbench有依赖关系的项目与spring做自动扫描时要注意。
enableScanner="false" 必须要设置成false
原因:因B项目中的A项目不会因A项目的变化而在B项目的引用中变化,所以在自动扫描时会出现异常,
跟踪源码可以看出,会将AB两个项目中的
kmodule.xml中的kiebase的name加载到spring中,因单例模式的原因,会在
这段代码中出现问题,所以要将是否扫描关闭。
8、关于mysql的问题
远程MYSQL 1103错误 ERROR 1130: Host *.*.*.* is not allowed to connect to
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
flush privileges;
9、
在tomcat启动时会有这个异常,虽然不会影响程序启动但总叫人看的不舒服,如何解决这个问题呢, 我们可以通过添加两个jar包:
log4j-api-2.1.jar
log4j-slf4j-impl-2.1.jar 在控制台就不会报错了。
10、使用workbench+kie-server时, 如果我们插入(newInsert(Object))的话, 可能产生如下效果:
解决该问题的方法:因为我们一般会将workbench项目中的kie-session 设置成为有状态的,在kie-server里就会导致上述的问题,所以我们要将kiesession设置无状态的,释放facthandle
解决该问题的方法:因为我们一般会将workbench项目中的kie-session 设置成为有状态的,在kie-server里就会导致上述的问题,所以我们要将kiesession设置无状态的,释放facthandle
11、使用workbench 创建的数据对象中,包含有List等集合的时候,一般情况我们都会修改list的 set 方法,但这样就会导致kie-server json 请求方式 反序列化失败的问题 注: xml 请求方式不会出来该问题
解决方法:
在数据对象中新建一个方法, 例如:
public void addList(String name){
this.list.add(name);
}
在规则中的使用中,通过引用别名 来调用这个方法即可。但要注意,因为在数据对象中不会初始化List 所以我们要在属性里 new ArrayList(); 有泛型 加泛型。
下面是小编的微信转帐二维码,小编再次谢谢读者的支持,小编会更努力的
----请看下方↓↓↓↓↓↓↓
百度搜索 Drools从入门到精通:可下载开源全套Drools教程
深度Drools教程不段更新中:
更多Drools实战陆续发布中………
扫描下方二维码关注公众号 ↓↓↓↓↓↓↓↓↓↓