如何注入 KieRuntimeBuilder -(迁移到 Drools 8)

问题描述 投票:0回答:1

我需要迁移到 Drools 8,同时尽可能少地接触代码。我一直在遵循他们的 guide,其中说我需要用 KieRuntimeBuilder 替换 KieContainer

问题在于实例化该值。我添加了 kogito-legacy 依赖项,文档声称您只需添加 @Inject 注释,Kogito 将为您注入值。

这当然不起作用,因为它没有作为 Spring bean 被选取,但即使将外部包添加到 ComponentScan 后,它仍然会遇到相同的错误 - 没有类型为“org.kie.kogito.legacy”的合格 bean。 Rules.KieRuntimeBuilder' 可用:预计至少有 1 个符合自动装配候选资格的 bean。

我已将这些依赖项添加到我的 pom 中 -

            <dependency>
                <groupId>org.drools</groupId>
                <artifactId>drools-engine</artifactId>
                <version>${version.drools}</version>
            </dependency>
            <dependency>
                <groupId>org.kie.kogito</groupId>
                <artifactId>kogito-legacy-api</artifactId>
                <version>1.20.0.Final</version>
            </dependency>
            <dependency>
                <groupId>org.kie.kogito</groupId>
                <artifactId>kogito-quarkus-rules</artifactId>
                <version>1.44.1.Final</version>
            </dependency>

Drools 还提供另一个 KieRuntimeBuilder。尽管说明是添加 kogito-legacy 版本,但我也尝试了其他版本。虽然这也失败了,但它似乎更接近标记,因为 bean 至少已成功创建(但为 null)-

Caused by: java.lang.NullPointerException: Cannot invoke "org.kie.api.runtime.KieRuntimeBuilder.getKieBase()" because "this.kieRuntimeBuilder" is null
java spring-boot migration drools kogito
1个回答
0
投票

请问您是如何解决这个问题的?

© www.soinside.com 2019 - 2024. All rights reserved.