`

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有没有解决这个问题。

相关推荐

Global site tag (gtag.js) - Google Analytics