Drools core jar与jdt-compile.jar摩擦的解决办发
Drools core jar与jdt-compile.jar冲突的解决办发
使用drools的时候发现它和项目里面的jdt-compile.jar冲突,报找不到‘org.eclipse.jdt.internal.complier.ComplierResult.getProblems()’方法,为了避免这个问题我决定使用Janino compiler。
只要将初始化KnowledgeBuilder得java语句加入下面这个配置就可以了:
Properties props = new Properties(); props.setProperty("drools.dialect.java.compiler", "JANINO"); KnowledgeBuilderConfiguration config = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(props, null); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(config);
不要使用官方网站提供和的:
kconfig.setProperty("drools.dialect.java.compiler", "JANINO");
这个没有效果,我试过了。详细可以参见:
http://n3.nabble.com/Drools-5-0-can-t-make-it-use-Janino-compiler-always-wants-eclipse-jar-td104392.html
另外可以参考:
http://community.jboss.org/wiki/RulesTomcat
这也是一个解决方案。
另外,我使用Janino 后发现rule执行不了,总是报nullpointException,不知道为什么,如果你知道,请给我留个言。谢谢!
1 楼
melland
2010-04-02
你好,LZ,我遇到的问题和你一样,在运行时报NPE,但是单元测试是不会出现NPE的。
我目前debug到
boolean org.codehaus.janino.Compiler.compile(Resource[] sourceResources) throws ScanException, ParseException, CompileException, IOException
在调用这个方法时,单元测试和系统运行的区别就显示出来了,但是恰好苦于JANINO没有源码包,无法继续debug,找不到原因了。
不知道LZ有没有解决这个问题。
我目前debug到
boolean org.codehaus.janino.Compiler.compile(Resource[] sourceResources) throws ScanException, ParseException, CompileException, IOException
在调用这个方法时,单元测试和系统运行的区别就显示出来了,但是恰好苦于JANINO没有源码包,无法继续debug,找不到原因了。
不知道LZ有没有解决这个问题。