gpt4 book ai didi

java - 从 OSGI bundle 访问 Drools Guvnor

转载 作者:行者123 更新时间:2023-12-01 04:56:17 27 4
gpt4 key购买 nike

我使用以下代码来访问 Drools Guvnor:

KnowledgeAgentConfiguration kaconf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration();
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent("MyAgent", kaconf);
kagent.applyChangeSet(ResourceFactory.newClassPathResource("drools/change-set.xml"));
StatefulKnowledgeSession ksession = kagent.getKnowledgeBase().newStatefulKnowledgeSession();

不幸的是,KnowledgeAgentFactory 类似乎没有准备好 OSGI,因为它使用 Class.forName() 来加载代理提供程序。 KnowledgeAgentFactory 驻留在knowledge-api 包中,提供程序实现位于drools-core 包中。显然,knowledge-api 在 OSGI 容器中看不到 drools-core。结果我得到以下异常:

Caused by: java.lang.RuntimeException: Provider org.drools.agent.impl.KnowledgeAgentProviderImpl could not be set.
at org.drools.agent.KnowledgeAgentFactory.loadProvider(KnowledgeAgentFactory.java:191)[162:org.drools.api:5.5.0.Final]
at org.drools.agent.KnowledgeAgentFactory.getKnowledgeAgentProvider(KnowledgeAgentFactory.java:178)[162:org.drools.api:5.5.0.Final]
at org.drools.agent.KnowledgeAgentFactory.newKnowledgeAgentConfiguration(KnowledgeAgentFactory.java:129)[162:org.drools.api:5.5.0.Final]

这个问题有解决办法吗?

最佳答案

您可能会帮助自己使用 require-bundle list 条目,因为它似乎无法与这些导入一起正常工作,我想说,在这一点上,最好让它以这种方式工作。

Require-Bundle正如 osgi wiki 中定义的

关于java - 从 OSGI bundle 访问 Drools Guvnor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14075133/

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