使用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://community.jboss.org/wiki/RulesTomcat
这也是一个解决方案。
另外,我使用Janino 后发现rule执行不了,总是报nullpointException,不知道为什么,如果你知道,请给我留个言。谢谢!