【问题标题】:Migrating Spring drools-context.xml from 5.0 to 6.0将 Spring drools-context.xml 从 5.0 迁移到 6.0
【发布时间】:2015-02-27 10:28:42
【问题描述】:

在 drools 6 中,Spring integration 发生了一些变化,因此不再指定资源。

    <drools:resources>
        <drools:resource type="DRL"
                         source="classpath:rules/products.drl"/>
    </drools:resources>

那么如何在版本 6 中指定它们?

【问题讨论】:

  • 我会在 drools-usage@googlegroups.com 提出这个问题,并提出一个额外的问题,即在没有记录如何在后续版本中替换该功能的情况下停止使用该功能的原因是什么。
  • 据我所知,新的 Kie-Spring 东西只是让您可以将通常放在 kmodule.xml 中的 XML 嵌入到 Spring 应用程序上下文 XML 文件中。因此,要使其正常工作,您可以遵循 kmodule.xml 的约定并指向规则包,或者您自己编写代码以将 DRL 文件添加到 KieFileSystem。
  • 谢谢。看起来很合理..

标签: java spring drools kie


【解决方案1】:

请注意,在 Drools 6 中,要加载的 drl 文件应放在 maven 项目的 main/resources 文件夹下。在 Tomcat 中运行时,drl 文件将出现在 /WEB-INF/classes 文件夹下。

示例 xml 配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:kie="http://drools.org/schema/kie-spring"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://drools.org/schema/kie-spring http://drools.org/schema/kie-spring.xsd">

<kie:kmodule id="kmoduleCEP">
    <kie:kbase name="kbaseCEP" eventProcessingMode="stream"
        equalsBehavior="equality">
        <kie:ksession name="ksessionCEP" type="stateful"
            clockType="realtime">
            <kie:agendaEventListener ref="agendaEventListener" />
            <kie:ruleRuntimeEventListener ref="workingMemoryEventListener" />
            <kie:batch>
                <kie:set-global identifier="callbackService">
                    <ref bean="callbackService" />
                </kie:set-global>
            </kie:batch>
        </kie:ksession>
    </kie:kbase>
</kie:kmodule>

</beans>

使用 kie-spring 代替 drools-spring 神器。类似:

<dependency>
    <groupId>org.kie</groupId>
    <artifactId>kie-spring</artifactId>
    <version>${org.drools.version}</version>
</dependency>
<dependency>
    <groupId>org.kie</groupId>
    <artifactId>kie-api</artifactId>
    <version>${org.drools.version}</version>
</dependency>                       
<dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-core</artifactId>
    <version>${org.drools.version}</version>
</dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-15
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 2015-03-25
    • 2022-11-23
    • 2016-10-06
    相关资源
    最近更新 更多