我正在尝试在Spring中使用drools。 春季版4.01 Drools / Kie版本6.0.1
我的kie-context.xml出现以下错误(在Eclipse中):
引用文件包含错误(http://drools.org/schema/kie-spring.xsd)。有关详细信息,请右键单击“问题视图”中的消息,然后选择“显示详细信息...”
kie-context.xml :(在applicationContext.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://drools.org/schema/kie-spring http://drools.org/schema/kie-spring.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<kie:kmodule id="ng-rule-server">
<kie:kbase name="kbase1" packages="org.drools.server">
<kie:ksession name="ksession1" type="stateless" />
</kie:kbase>
</kie:kmodule>
<bean id="kiePostProcessor" class="org.kie.spring.KModuleBeanFactoryPostProcessor" />
</beans>
相关的pom.xml:
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
<version>${kie.version}</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-internal</artifactId>
<version>${kie.version}</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>${drools.version}</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<version>${drools.version}</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-spring</artifactId>
<version>${kie.version}</version>
</dependency>
<kie.version>6.0.1.Final</kie.version>
<drools.version>6.0.1.Final</drools.version>
详细说明:
有人能看出我的设置有什么问题吗?
答案 0 :(得分:2)
我跳过了将xsi:schemaLocation直接指向github地址的错误。
在kie-context.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.xsd
http://drools.org/schema/kie-spring
https://raw.github.com/droolsjbpm/droolsjbpm-integration/master/kie-spring/src/main/resources/org/kie/spring/kie-spring-6.0.0.xsd">
<kie:kmodule id="sample_module">
<kie:kbase name="kbase1">
<kie:ksession name="ksession1" />
</kie:kbase>
</kie:kmodule>
<bean id="kiePostProcessor" class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
</beans>
不是好方法,但有效。希望这会有所帮助。
答案 1 :(得分:2)
也可以使用classpath
:URL处理程序
xmlns:kie="http://drools.org/schema/kie-spring"
xsi:schemaLocation="http://drools.org/schema/kie-spring classpath:org/kie/spring/kie-spring-6.0.0.xsd"
答案 2 :(得分:1)
我在使用Spring 3.2.8和Drools 6.0.0.Final的eclipse中遇到了同样的错误。 在应用程序启动期间,它曾经失败并出现以下错误:
除了'xs:appinfo'和'xs:documentation'之外的架构元素中不允许使用非空白字符。看到'Drools - JBoss社区'。
使用kie-spring依赖后,上面的问题得到解决。
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-spring</artifactId>
<version>${org.drools.version}</version>
</dependency>