25、研究drools时遇到的错误及解决方法
2016-08-18 14:44
120 查看
生成POJO类时,如果要生成构造函数的话,在有参或者无参构造函数中一定要写
否则在drl中写
就会报下面这种错误。
2、编写非spring 注入的原始配置文件时 要注意
3、在具体的实现类中,如果keisession 的值与配置文件中的ksession标签的name 值不一样。 会报如下错误
编写时要注意
4、通过maven 整合drools+spring时 要注意:
是否有规则引擎文件 如果没有 就加上。。 否则找不到相关规则引擎,
在pom.xml配置文件也可以写下面这段代码也可以解决spring找不到规则文件的问题
5、关于规则流的问题
版本问题
Drools6.4api的话 rf是不支持的
虽然不会抛异常 但会显示
6、关于语法 when 条件中or 的使用 or 在java中会出现短路机制,所以在使用时要注意。如果下面有引用when条件中的属性,要避免or的使用。
7、workbench做依赖关系时 要注意,当A项目被B项目引用时,A项目发生变化后,B项目中所引用的A项目不发生变化
workbench有依赖关系的项目与spring做自动扫描时要注意。
原因:因B项目中的A项目不会因A项目的变化而在B项目的引用中变化,所以在自动扫描时会出现异常,
跟踪源码可以看出,会将AB两个项目中的kmodule.xml中的kiebase的name加载到spring中,因单例模式的原因,会在
这段代码中出现问题,所以要将是否扫描关闭。
8、关于mysql的问题
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(); 有泛型 加泛型。
否则在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(); 有泛型 加泛型。
相关文章推荐
- 我遇到的几个VC错误及解决方法
- 关于安装VS2005或MSDN时遇到“Please insert the disk:XXXXXXX” 错误提示的解决方法!
- Word遇到错误以安全模式打开的解决方法
- 本人在MyEclipse中,遇到的错误提示解决方法整理。
- eclipse错误及解决方法(大家把遇到的错误也贴到评论里吧,然后一起解决)
- VS.NET2005安装过程中遇到error:1935错误时的解决方法
- 重新编译ns2遇到proxytrace2any.cc中`IsLittleEndian' undeclared 错误的解决方法
- sql语句中遇到“被零除错误”提示的解决方法
- hibernate+mysq学习中遇到的错误及解决方法(1)
- 再使用taglib 标签 遇到的错误 以及解决方法
- 我遇到的几个VC错误及解决方法
- 安装Visual Studio补丁遇到错误1718的解决方法
- Reporting Service中遇到的一些错误及解决方法
- 这个常见的错误。大家记录下自己曾遇到的这样问题的解决方法
- 编译升级linux由2.4.20-8到2.6.10内核时,遇到的错误,以及解决方法
- C++ 遇到的一些常见错误及解决方法
- 重装SQL Server 2005遇到的" 计数器错误 "问题及解决方法两则
- 打开MSN提示Windows Live Communication Platform遇到问题需要关闭错误的解决方法
- ASP.net编程中遇到的错误及解决方法
- Microsoft Office Word 2003 遇到错误需要关闭?解决方法