2

我们收到的例外是:

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

如您所见,主要是: java.lang.RuntimeException: Cannot find KieModule: org.switchyard.kie:project:0.0.1-SNAPSHOT at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.爪哇: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 库 6.2.0.CR3。

特性中添加的捆绑包:

wrap:mvn:org.eclipse.aether/aether-api/${version.org.eclipse.aether.aether-api} wrap:mvn:org.jbpm/jbpm-executor/${version.org.jbpm}$DynamicImport -包=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-settings-builder/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-aether-provider/3.2.2 wrap :mvn:org.eclipse.aether/aether-util/0.9.0.M3 包裹:mvn:org.eclipse.aether/aether-impl/0.9.0.M3 包裹:mvn:org.eclipse.aether/aether-spi /0.9.0.M3 包装: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.aether/aether-transport-wagon/0.9.0.M3 wrap:mvn:org。 apache.maven.wagon/wagon-provider-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

4

0 回答 0