您的位置:首页 > 编程语言 > Java开发

25、研究drools时遇到的错误及解决方法

2016-08-18 14:44 120 查看
生成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 spring 应用