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