drools 6 では、 Spring 統合にいくつかの変更があり、リソースが指定されなくなりました。
<drools:resources>
<drools:resource type="DRL"
source="classpath:rules/products.drl"/>
</drools:resources>
では、バージョン 6 ではどのように指定すればよいのでしょうか?
drools 6 では、 Spring 統合にいくつかの変更があり、リソースが指定されなくなりました。
<drools:resources>
<drools:resource type="DRL"
source="classpath:rules/products.drl"/>
</drools:resources>
では、バージョン 6 ではどのように指定すればよいのでしょうか?
Drools 6 では、ロードする drl ファイルは、maven プロジェクトの main/resources フォルダーに配置する必要があることに注意してください。たとえば Tomcat での実行時に、drl ファイルは <yourwebapp>/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>
drools-spring アーティファクトの代わりに kie-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>