Spring-Drools集成:引用文件(kie-spring.xsd)包含错误

时间:2014-02-07 18:42:45

标签: spring xsd integration drools

我正在尝试在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>

详细说明: enter image description here

有人能看出我的设置有什么问题吗?

3 个答案:

答案 0 :(得分:2)

我跳过了将xsi:schemaLocation直接指向github地址的错误。

您可以在此处找到它:https://raw.github.com/droolsjbpm/droolsjbpm-integration/master/kie-spring/src/main/resources/org/kie/spring/kie-spring-6.0.0.xsd

在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>