当前位置: 首页 > 知识库问答 >
问题:

Drools 7.4.1 kieservices.factory。get()返回null

林俊晖
2023-03-14

我尝试将Drools 7.4.1集成到tomcat中的webapp中。

当我调用以下语句以获取KieService时,我得到null

KieServices ks = KieServices.Factory.get();

当从测试方法调用相同的方法时,这是正常的。

有人能帮忙吗?

共有3个答案

魏熠彤
2023-03-14

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

我们还需要添加drools编译器依赖项,但仅此并不能解决它。

因为有多个kie。类路径上的conf文件来自不同的依赖项,优步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编译器中的这些行添加到了我们的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 uf myjar.jar META-INF/kie.conf

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

斜和硕
2023-03-14

谢谢你给nicole.torres的小费。

对于这个问题,我们可以使用maven shade插件资源转换器中的appendingtransformer:

https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#AppendingTransformer

使用它,我们可以附加所有META-INF/kie.conf文件。任何在ubber jar中创建KieBase或KieContainer时遇到空指针的人,请访问此线程。我花了三天时间找到解决方案,并尝试为几乎所有该死的口水示例创建一个ubber jar在线可用:(

郜驰
2023-03-14

您必须在依赖项中添加drools编译器。

    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-compiler</artifactId>
        <version>7.4.1</version>
    </dependency>
 类似资料:
  • 我是SNMP新手,我正在尝试使用SNMP操作,我正在使用http://techdive.in/snmp/snmp4j-snmp-get-example代码,但我无法获得预期的输出。我得到如下空响应: SNMP获取演示正在向代理发送请求。。。从代理Snmp获取响应获取响应=[1.3.6.1.2.1.1.1.0=Null] 当我试图为MIB RFC 1213的OID获取sysDescr时,预期的输出应

  • 所以我开始和Morphia一起工作,我遇到了一个奇怪的问题。 get(moviedetails.class,id) 我得到null 当我使用:

  • 我正在尝试编写一个sokoban求解器,我的代码可以工作,但是计算解决方案需要很多时间。我想这是因为我使用ArrayList,我尝试使用Hashtable,但是方法get不起作用, 因此,当我填充哈希表,并使用键获取列表时,我得到空值。 然而,顶点存在于图形中。 如何解决此问题以提高Sokoban解算器的速度。

  • 我使用http://localhost:8080/auth/realms/{realm_name}/protocol/openid-connect/token endpoint创建令牌。 grant_type=client_credentials 客户端-id:------------- 客户端-secret:78296D38-CC82-4010-A817-65C283484E51 现在我想获得r

  • 我的项目使用vuex、axios、vue cookies和JWTs。我有一个叫做api的文件。js导入到我的主vue js、api中。下面是js代码; 当我通过登录页面登录时,一切都显示成功。在检查器中,cookie“令牌”值正确地用新令牌更新,Vuex更新以显示用户已认证,路由器将我重定向到主页。一旦在主页上,如果我试图导航到一个进行任何需要身份验证的调用的页面,在标题中它会传递“JWT空”而不

  • LoginController.java spring-config-servlet.xml http://www.springframework.org/schema/jdbc/springframework.org/schema/mvc/springmvc-4.3.xsd http://www.springframework.org/schema/mvc/springmvc-4.3.xsd h