在OSGI环境中找不到ReleaseId的KieModule

时间:2015-01-09 16:14:51

标签: jboss drools kie

我们收到的例外是:

https://gist.github.com/dvirgiln/59d1eb3feccf4f8ab83b

正如您所看到的,主要是: java.lang.RuntimeException:找不到KieModule:org.switchyard.kie:project:0.0.1-SNAPSHOT     在org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:97)

使用的代码是:

    MavenRepository repository = MavenRepository.getMavenRepository();
    repository.resolveArtifact(releaseId.toExternalForm());
    KieServices ks = KieServices.Factory.get();
    KieContainer kieContainer = ks.newKieContainer(releaseId);

releaseId(String)的值为:org.switchyard.kie:project:0.0.1-SNAPSHOT

KIE和drools library 6.2.0.CR3。

在功能中添加了捆绑包:

涡卷:MVN:org.eclipse.aether /乙醚-API / $ {version.org.eclipse.aether.aether-API}         包裹:MVN:org.jbpm / jbpm的执行人/ $ {version.org.jbpm} $ DynamicImport-封装= org.hibernate作为,Javassist进行。         包装:MVN:org.jbpm / jBPM的-工作项/ $ {} version.org.jbpm         包装:MVN:org.kie /纪伊-CI / $ {} version.org.kie         包裹:MVN:org.kie.remote /纪伊-远程客户端/ $ {version.org.kie}         包裹:MVN:org.kie.remote /纪伊-远程公共/ $ {version.org.kie}         包裹:MVN:org.kie.remote /纪伊-远程JAXB / $ {version.org.kie}         包装:MVN:org.apache.maven / Maven的设置,建设者/ 3.2.2         包裹:MVN:org.codehaus.plexus /丛插补/ 1.19         包装:MVN:org.codehaus.plexus /丛-utils的/ 3.0.17         包装:MVN:org.apache.maven / Maven的设置/ 3.2.2         包装:MVN:org.apache.maven / Maven的以太网提供商/ 3.2.2         包裹:MVN:org.eclipse.aether /乙醚-UTIL / 0.9.0.M3         包裹:MVN:org.eclipse.aether /乙醚-IMPL / 0.9.0.M3         包裹:MVN:org.eclipse.aether /乙醚-SPI / 0.9.0.M3         包裹:MVN:org.eclipse.aether /乙醚连接器碱性/ 0.9.0.M3         包装:MVN:org.eclipse.aether /以太网的传输文件/ 0.9.0.M3         包装:MVN:org.eclipse.aether /以太网传输,HTTP / 0.9.0.M3         MVN:org.apache.httpcomponents /的HttpCore OSGi的/ 4.3.2         MVN:org.apache.httpcomponents / HttpClient的OSGi的/ 4.3.5         包装:MVN:org.eclipse.aether /以太网的传输旅行车/ 0.9.0.M3         包裹:MVN:org.apache.maven.wagon /旅行车提供商的API / 1.0

我调试了代码。上面代码的第二行,正确解析了工件。  repository.resolveArtifact(releaseId.toExternalForm());

我认为与此方法有关的问题是:

 private KieModule loadKieModuleFromMavenRepo(ReleaseId releaseId, byte[] pomXml) {
    return pomXml != null ?
           getInternalKieScanner().loadArtifact(releaseId, new ByteArrayInputStream(pomXml)) :
           getInternalKieScanner().loadArtifact(releaseId);
}

我检查了对getInternalKieScanner的调用,它是一个虚拟存储库。这就是loadArtifact返回null的原因。

org.drools.compiler.kie.builder.impl.KieRepositoryImpl$DummyKieScanner@25a291e6

0 个答案:

没有答案