为什么将Drools 6 KIE JAR加载到代码中失败?

我正在将JBoss AS 7.1.1.Final和KIE Workbench / Drools6.0.1。,Java和Eclipse(Kepler)一起使用。

我需要KIE Workbench(以前称为DroolsGuvnor)来使人们使用事实和规则以图形方式创建/编辑jar,然后将其作为jar存储在本地Maven存储库中。然后,我要以编程方式访问这些jar(以前是pkg),并将它们加载到我的Drools应用程序中。该应用程序甚至可以(尽管不是首选)在同一工作站上运行,因此可以访问存储库

a)通过URL: http://localhost:8080/drools-wb-as7.0/maven2/com/myprojects/myProject/LATEST/myProject-LATEST.jar

b)通过文件路径/类路径:/my/folder/jboss-as-7.1.1.Final/bin/repositories/kie/com/myprojects/myProject/LATEST/myProject-LATEST.jar

我不希望创建/编译我的代码中动态地规则等,无论是动态加载一个.drl文件-准备好的罐子是我需要的负载,如与com.myprojects:myProject的:最新作标识。

我尝试一下(根据文档)

KieServices ks = KieServices.Factory.get();

KieContainer kContainer = ks.newKieContainer(

ks.newReleaseId("com.myprojects", "myProject", "LATEST"));

KieScanner kScanner = ks.newKieScanner( kContainer );

kScanner.start( 10000L );

KieSession kSession = kContainer.newKieSession("defaultKieSession");

kSession.insert( fact );

[...]

但是,此操作因“运行时异常”而失败,

Exception in thread "main" java.lang.RuntimeException: Cannot find KieModule: com.myprojects:myProject:LATEST

at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:86)

at com.myprojects.myproject.KieDroolsWBOnlinePuller.code(KieDroolsWBOnlinePuller.java:118)

at com.myprojects.myproject.KieDroolsWBOnlinePuller.main(KieDroolsWBOnlinePuller.java:40)

我的问题是:为什么找不到来自回购的罐子?当我在KIE WB中创建jar时,KieModule是否自动在回购中表示jar和jar?还是我必须更改Maven Repo的默认ReleaseID,该ID随

KieRepository repo = ks.getRepository();

repo.getDefaultReleaseId()

决心

org.default:artifact:1.0.0-SNAPSHOT ?

这是一个Maven问题吗?我怎么了?

这是jars pom.xml的内容

<?xml version="1.0" encoding="UTF-8"?>

<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<modelVersion>4.0.0</modelVersion>

<groupId>com.myprojects</groupId>

<artifactId>myProject</artifactId>

<version>LATEST</version>

<name>myProject</name>

<repositories>

<repository>

<id>guvnor-m2-repo</id>

<name>Guvnor M2 Repo</name>

<url>http://localhost:8080/drools-wb-as7.0/maven2/</url>

</repository>

</repositories>

</project>

我还尝试使用此代码通过URL加载jar:

KieServices ks = KieServices.Factory.get();

ReleaseId releaseId = ks.newReleaseId("com.myprojects", "myProject", "LATEST");

KieResources kres = ks.getResources();

String url = "http://127.0.0.1:8080/drools-wb-as7.0/maven2/com/myprojects/myProject/LATEST/myProject-LATEST.jar";

kres.newUrlResource( url );

KieContainer kContainer = ks.newKieContainer(releaseId);

KieSession kSession = kContainer.newKieSession("statelessDefautlKnowledgeSession");

[...]

失败的原因是相同的。…有什么想法吗?

回答:

就我而言,事实证明

<dependency>

<groupId>org.kie</groupId>

<artifactId>kie-ci</artifactId>

</dependency>

在我的POM中丢失

以上是 为什么将Drools 6 KIE JAR加载到代码中失败? 的全部内容, 来源链接: utcz.com/qa/403729.html

回到顶部