Java Drools 6.3.0最终版扫描仪MavenEmbedderException
我刚开始学口水,我遇到了一个问题 我正在从事一个涉及Java7和Drools6.3.0.Final的项目。我希望通过KieScanner加载规则,规则jar是Java Drools 6.3.0最终版扫描仪MavenEmbedderException,java,drools,Java,Drools,我刚开始学口水,我遇到了一个问题 我正在从事一个涉及Java7和Drools6.3.0.Final的项目。我希望通过KieScanner加载规则,规则jar是droolsrules-1.0.0-RELEASE.jar: KieServices ks = KieServices.Factory.get(); ReleaseId releaseId = ks.newReleaseId("com.ericsson", "droolsrules", "1.0.0-Fina
droolsrules-1.0.0-RELEASE.jar
:
KieServices ks = KieServices.Factory.get();
ReleaseId releaseId = ks.newReleaseId("com.ericsson", "droolsrules", "1.0.0-Final");
KieContainer kc = ks.newKieContainer( releaseId );
KieScanner kScanner = ks.newKieScanner(kc);
// Start the KieScanner polling the Maven repository every 10 seconds
kScanner.start(10000L);
KieSession ksession = kc.newKieSession("GeelyKS");
QueryResults qr = null;
while(true){
System.out.print("Please enter Param:");
s = br.readLine();
if(s == null || s.trim().length() == 0){
continue;
}
if (!s.equals("exit")) {
String[] ss = s.split(",");
Param param = new Param();
param.setName(ss[0]);
param.setValue(ss[1]);
param.setAction(ss[2]);
ksession.insert(param);
ksession.fireAllRules();
qr = ksession.getQueryResults("query fact count");
System.out.println("param project count:" + qr.size());
在运行项目时,我遇到以下错误:
java.lang.RuntimeException: org.kie.scanner.embedder.MavenEmbedderException: Failed to read artifact descriptor for org.kie:kie-api:jar:6.3.0.Final
at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:57)
at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:49)
at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:127)
at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:90)
at org.kie.scanner.KieRepositoryScannerImpl.setKieContainer(KieRepositoryScannerImpl.java:88)
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieScanner(KieServicesImpl.java:139)
at com.ericsson.geely.service.impl.ParamServiceImpl.alarmTest(ParamServiceImpl.java:32)
at com.ericsson.geely.main.AppMain.main(AppMain.java:18)
Caused by: org.kie.scanner.embedder.MavenEmbedderException: Failed to read artifact descriptor for org.kie:kie-api:jar:6.3.0.Final
at org.kie.scanner.embedder.MavenEmbedder.readProject(MavenEmbedder.java:276)
at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:55)
... 7 more
Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for org.kie:kie-api:jar:6.3.0.Final
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:384)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:231)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.resolveCachedArtifactDescriptor(DefaultDependencyCollector.java:525)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.getArtifactDescriptorResult(DefaultDependencyCollector.java:509)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:409)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:363)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process(DefaultDependencyCollector.java:351)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:254)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:316)
at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:159)
at org.apache.maven.project.DefaultProjectBuilder.resolveDependencies(DefaultProjectBuilder.java:202)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:175)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:114)
at org.kie.scanner.embedder.MavenEmbedder.readProject(MavenEmbedder.java:271)
... 8 more
当我不使用KieScanner时,它可以很好地工作。如何修复它?看起来您指定的jar文件“droolsrules-1.0.0-RELEASE.jar”上的版本戳与代码试图检索的版本戳不同:“1.0.0-Final”。这个版本真的匹配吗
您可以尝试指定KIE的版本范围,而不是特定的版本。我认为KieScanner不会解析特定的发布版本。您可以使用快照版本、最新版本、发行版或类似[1.0.0-FINAL、1.1.0]的范围。Drools文档中说:“如果使用快照、版本范围、最新版本或发行版设置,KieScanner将只拾取对已部署JAR的更改。固定版本不会在运行时自动更新。”。我尝试过快照,但也不起作用。可能会有帮助。@TXG在规则引擎中运行KieBuilder.buildAll时,我也面临同样的问题。我使用的是drools 6.3.0.Final-redhat-5版本。