drools @KSession在单独的jar中使用kmodule时抛出异常

时间:2015-07-10 06:10:12

标签: drools

使用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

1 个答案:

答案 0 :(得分:0)

这是Kie Services / Spring集成中的一个错误。注释假定它总是一个ReleaseId。

几周前我创建了一个Pull Request,因此应该在即将推出的版本中解决。

票证链接:https://issues.jboss.org/browse/DROOLS-845