Jboss 在OSGI环境中找不到通过ReleaseId的模块

Jboss 在OSGI环境中找不到通过ReleaseId的模块,jboss,drools,kie,Jboss,Drools,Kie,我们收到的例外情况是: 如你所见,主要是: java.lang.RuntimeException:找不到KieModule:org.switchyard.kie:project:0.0.1-SNAPSHOT 位于org.drools.compiler.kie.builder.impl.kieServiceSiml.newKieContainer(kieServiceSiml.java:97) 使用的代码是: MavenRepository repository = MavenRepos

我们收到的例外情况是:

如你所见,主要是: java.lang.RuntimeException:找不到KieModule:org.switchyard.kie:project:0.0.1-SNAPSHOT 位于org.drools.compiler.kie.builder.impl.kieServiceSiml.newKieContainer(kieServiceSiml.java:97)

使用的代码是:

    MavenRepository repository = MavenRepository.getMavenRepository();
    repository.resolveArtifact(releaseId.toExternalForm());
    KieServices ks = KieServices.Factory.get();
    KieContainer kieContainer = ks.newKieContainer(releaseId);
releaseId(字符串)的值是:org.switchyard.kie:project:0.0.1-SNAPSHOT

KIE和drools库6.2.0.CR3

功能中添加的捆绑包:

wrap:mvn:org.eclipse.ether/etherapi/${version.org.eclipse.ether.etherapi} wrap:mvn:org.jbpm/jbpm executor/${version.org.jbpm}$DynamicImport-Package=org.hibernate.,javassist。 wrap:mvn:org.jbpm/jbpm workitems/${version.org.jbpm} wrap:mvn:org.kie/kie ci/${version.org.kie} wrap:mvn:org.kie.remote/kie remote client/${version.org.kie} wrap:mvn:org.kie.remote/kie remote common/${version.org.kie} wrap:mvn:org.kie.remote/kie remote jaxb/${version.org.kie} wrap:mvn:org.apache.maven/maven设置生成器/3.2.2 wrap:mvn:org.codehaus.plexus/plexus-interpolation/1.19 wrap:mvn:org.codehaus.plexus/plexus-utils/3.0.17 wrap:mvn:org.apache.maven/maven settings/3.2.2 wrap:mvn:org.apache.maven/maven-ether-provider/3.2.2 wrap:mvn:org.eclipse.aether/aether-util/0.9.0.M3 wrap:mvn:org.eclipse.aether/aether-impl/0.9.0.M3 wrap:mvn:org.eclipse.ether/ether-spi/0.9.0.M3 wrap:mvn:org.eclipse.aether/aether-connector-basic/0.9.0.M3 wrap:mvn:org.eclipse.aether/aether-transport-file/0.9.0.M3 wrap:mvn:org.eclipse.aether/aether-transport-http/0.9.0.M3 mvn:org.apache.httpcomponents/httpcore-osgi/4.3.2 mvn:org.apache.httpcomponents/httpclient-osgi/4.3.5 wrap:mvn:org.eclipse.ether/ether-transport-carg/0.9.0.M3 wrap:mvn:org.apache.maven.carg/carg提供者api/1.0

我已经调试了代码。上面代码的第二行,正确解析工件。 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