Ich erhalte diesen Guice Provision-Fehler, wenn ich KieScanner mit meinem Drools + Spark-Programm verwende. Ich benutze Spark 1.6.2 mit Drools und Kie-cl 6.4.0 und lese meine Sabol-Regeln aus meinem lokalen Maven-Repository. Die Funkenapplikation läuft und arbeitet wenn ich ks.newKieScanner (kieContainer); entfernt, so scheint ein Problem bei der Implementierung zu bestehen.KieScanner und Spark com.google.inject.ProvisionException: Fehler bei der Bereitstellung von Guice
-Code initialisiert KieScanner:
KieServices ks = KieServices.Factory.get();
ReleaseId releaseId = ks.newReleaseId("DroolsDynamic.group", "DroolsDynamic.artifact", "1.0-SNAPSHOT");
KieContainer kieContainer = ks.newKieContainer(releaseId);
KieSession kSession = kieContainer.newKieSession("ksession-rules");
KieScanner kScanner = ks.newKieScanner(kieContainer);
Guice Bereitstellung Ausnahme:
Exception in thread "main" java.lang.RuntimeException: org.kie.scanner.embedder.MavenEmbedderException: **com.google.inject.ProvisionException: Guice provision errors:**
1) No implementation for org.apache.maven.repository.RepositorySystem was bound.
while locating org.apache.maven.execution.DefaultMavenExecutionRequestPopulator
at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
while locating org.apache.maven.execution.MavenExecutionRequestPopulator
1 error
role: org.apache.maven.execution.MavenExecutionRequestPopulator
roleHint:
at org.kie.scanner.embedder.MavenProjectLoader.newMavenEmbedder(MavenProjectLoader.java:69)
at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:53)
at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:49)
at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:136)
at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:99)
at org.kie.scanner.KieRepositoryScannerImpl.setKieContainer(KieRepositoryScannerImpl.java:89)
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieScanner(KieServicesImpl.java:139)
at com.sample.SnortTest.main(SnortTest.java:72)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: org.kie.scanner.embedder.MavenEmbedderException: com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.apache.maven.repository.RepositorySystem was bound.
while locating org.apache.maven.execution.DefaultMavenExecutionRequestPopulator
at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
while locating org.apache.maven.execution.MavenExecutionRequestPopulator
1 error
role: org.apache.maven.execution.MavenExecutionRequestPopulator
roleHint:
at org.kie.scanner.embedder.MavenEmbedder.(MavenEmbedder.java:102)
at org.kie.scanner.embedder.MavenEmbedder.(MavenEmbedder.java:81)
at org.kie.scanner.embedder.MavenEmbedder.(MavenEmbedder.java:75)
at org.kie.scanner.embedder.MavenProjectLoader.newMavenEmbedder(MavenProjectLoader.java:66)
... 16 more
Caused by: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.apache.maven.repository.RepositorySystem was bound.
while locating org.apache.maven.execution.DefaultMavenExecutionRequestPopulator
at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
while locating org.apache.maven.execution.MavenExecutionRequestPopulator
1 error
role: org.apache.maven.execution.MavenExecutionRequestPopulator
roleHint:
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:267)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:249)
at org.kie.scanner.embedder.PlexusComponentProvider.lookup(PlexusComponentProvider.java:42)
at org.kie.scanner.embedder.MavenEmbedder.buildMavenExecutionRequest(MavenEmbedder.java:119)
at org.kie.scanner.embedder.MavenEmbedder.(MavenEmbedder.java:90)
... 19 more
Caused by: com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.apache.maven.repository.RepositorySystem was bound.
while locating org.apache.maven.execution.DefaultMavenExecutionRequestPopulator
at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
while locating org.apache.maven.execution.MavenExecutionRequestPopulator
1 error
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:82)
at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:263)
... 24 more
Das ist mein pom.xml ist
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>DroolsDynamic.group</groupId>
<artifactId>DroolsDynamic.artifact</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.10</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-ci</artifactId>
<version>6.4.0.Final</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<version>6.4.0.Final</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>6.4.0.Final</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<!-- Additional configuration. -->
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>kinesis-asl</id>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kinesis-asl_${scala.binary.version}</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
</profiles>
</project>
Ich habe für eine Weile zu ändern bis auf diese aufgeklebt die pom.xml und was nicht, und ich bin immer noch fest. Jede Hilfe oder Idee, warum dies geschieht, wird helfen. Vielen Dank!
Haben Sie das jemals gelöst? – terminatur