使用Drools 6.2.0.Final
我在一个单独的jar文件中使用带有kmodules.xml和decisiontable的drools。当我尝试将@KSession绑定到spring应用程序上下文时,它会在注释内部抛出一个nullpointer异常。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'oft.onlineservice.business.FeeRulesEngineTest': Injection of kie dependencies failed; nested exception is java.lang.NullPointerException
at org.kie.spring.annotations.AnnotationsPostProcessor.postProcessPropertyValues(AnnotationsPostProcessor.java:109)
使用简单的junittest显示问题。
public class FeeRulesEngineTest {
@KSession( "ksession1")
private StatelessKieSession ksession;
@KBase("feeDecisionTable")
private KieBase kbase;
kmodule.xml
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<kbase name="feeDecisionTable" packages="oft.rulesengine" default="true">
<ksession name="ksession1" type="stateless" default="true" >
</ksession>
</kbase>
</kmodule>
spring配置使用的是annonation后处理器。
<kie:import />
<bean id="kiePostProcessor"
class="org.kie.spring.annotations.KModuleAnnotationPostProcessor"/>
我的努力工作是将@Autowire用于KSession和KBase。
知道我做错了什么?
感谢
-lp
答案 0 :(得分:0)
这是Kie Services / Spring集成中的一个错误。注释假定它总是一个ReleaseId。
几周前我创建了一个Pull Request,因此应该在即将推出的版本中解决。