我们收到的例外是:
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