gpt4 book ai didi

java - kieservices.factory.get() 在 kie-api7.6.0 中返回 null

转载 作者:行者123 更新时间:2023-11-30 06:15:30 25 4
gpt4 key购买 nike

我使用的是 kie-api 7.6.0。

当我尝试获取 kieservices.factory.get() 时,它返回 null

我的Java项目是一个gradle项目。

可能是什么原因?我的Java项目是一个gradle项目。

final ReleaseIdImpl releaseId = new ReleaseIdImpl(RULE_PACKAGE, RULE_NAME,
RULE_VERSION);
final KieServices ks = KieServices.Factory.get();

final KieContainer kContainer = ks.newKieContainer(releaseId);

我将 ks 设为 null,因此在 ks.newKieContainer(releaseId); 处出现 NullPointerException;

我已经添加了以下 jar 的依赖项

drools-compiler-6.5.0.Final.jar
drools-core-6.5.0.Final.jar
drools-decisiontables-6.5.0.Final.jar
drools-jsr94-6.5.0.Final.jar
drools-persistence-jpa-6.5.0.Final.jar
drools-templates-6.5.0.Final.jar
org.drools.eclipse-6.5.0.Final.jar
kie-maven-plugin-6.5.0.Final.jar
kie-api-6.5.0.Final.jar
kie-ci-6.5.0.Final.jar
kie-internal-6.5.0.Final.jar

最佳答案

我相信这与这里的原因相同:Drools 7.4.1 kieservices.factory.get() returns null

这是我的回答。

<小时/>

当我们尝试在我们的网络服务器中使用 Drools 时,我们遇到了同样的问题嵌入式 Grizzly http 服务器。

我们还需要添加 drools-compiler 依赖项,但仅此并不能解决问题。

由于类路径上存在来自不同依赖项的多个 kie.conf 文件,因此 uber-jar 最终只有一个,并且缺少要加载的类的定义。

除了 drools-core kie.conf 中的这些条目之外:

org.kie.api.io.KieResources = org.drools.core.io.impl.ResourceFactoryServiceImpl
org.kie.api.marshalling.KieMarshallers = org.drools.core.marshalling.impl.MarshallerProviderImpl
org.kie.api.concurrent.KieExecutors = org.drools.core.concurrent.ExecutorProviderImpl

我们将这些行从 drools-compiler 添加到我们的 uber-jar kie.conf:

org.kie.api.KieServices = org.drools.compiler.kie.builder.impl.KieServicesImpl
org.kie.internal.builder.KnowledgeBuilderFactoryService = org.drools.compiler.builder.impl.KnowledgeBuilderFactoryServiceImpl

否则 KieServices 未加载并且 KieServices.Factory.get() 返回 null。

我们随后使用

修改构建的 jar
jar uf myjar.jar META-INF/kie.conf

修改包含的 kie.conf 文件。我们无法找到一个干净的 Maven 集成解决方案。欢迎任何建议...

关于java - kieservices.factory.get() 在 kie-api7.6.0 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49295671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com