Marv174
Marv174

Reputation: 33

How can I get a kieContainer from KIE workbench

I try to get a kieContainer from a project which I created over the KIE Workbench.

    String url = "http://dev.dsack.local:8080/kie-wb/maven2wb/ouTest/projectTest/1.0/projectTest-1.0.jar";
    ReleaseIdImpl releaseId = new ReleaseIdImpl("ouTest", "projectTest", "1.0");
    KieServices kieServices = KieServices.Factory.get();
    kieServices.getResources().newUrlResource(url);
    KieContainer kieContainer = kieServices.newKieContainer(releaseId);

When I open the url with a browser I can download the .jar but in the last line I get an error. I dont know what i'm doing wrong. I'm also not very familiar with maven. Can you please help me?

12:57:11.688 [main] DEBUG org.kie.scanner.MavenRepository - Unable to resolve artifact: ouTest:projectTest:pom:1.0
org.eclipse.aether.resolution.ArtifactResolutionException: Could not find artifact ouTest:projectTest:pom:1.0 in central (https://repo.maven.apache.org/maven2)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444) ~[aether-impl-1.0.0.v20140518.jar:na]
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246) ~[aether-impl-1.0.0.v20140518.jar:na]
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223) ~[aether-impl-1.0.0.v20140518.jar:na]
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:294) ~[aether-impl-1.0.0.v20140518.jar:na]
at org.kie.scanner.MavenRepository.resolveArtifact(MavenRepository.java:154) ~[kie-ci-6.4.0.Final.jar:6.4.0.Final]
at org.kie.scanner.ArtifactResolver.getPomFileForGAV(ArtifactResolver.java:148) [kie-ci-6.4.0.Final.jar:6.4.0.Final]
at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:108) [kie-ci-6.4.0.Final.jar:6.4.0.Final]
at org.kie.scanner.KieRepositoryScannerImpl.loadPomArtifact(KieRepositoryScannerImpl.java:151) [kie-ci-6.4.0.Final.jar:6.4.0.Final]
at org.kie.scanner.KieRepositoryScannerImpl.loadArtifact(KieRepositoryScannerImpl.java:127) [kie-ci-6.4.0.Final.jar:6.4.0.Final]
at org.kie.scanner.KieRepositoryScannerImpl.loadArtifact(KieRepositoryScannerImpl.java:122) [kie-ci-6.4.0.Final.jar:6.4.0.Final]
at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.loadKieModuleFromMavenRepo(KieRepositoryImpl.java:130) [drools-compiler-6.4.0.Final.jar:6.4.0.Final]
at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.getKieModule(KieRepositoryImpl.java:116) [drools-compiler-6.4.0.Final.jar:6.4.0.Final]
at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.getKieModule(KieRepositoryImpl.java:93) [drools-compiler-6.4.0.Final.jar:6.4.0.Final]
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:115) [drools-compiler-6.4.0.Final.jar:6.4.0.Final]
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:111) [drools-compiler-6.4.0.Final.jar:6.4.0.Final]
at controller.DecisionServerTest.test2(DecisionServerTest.java:163) [classes/:na]
at Main.main(Main.java:9) [classes/:na]
Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact ouTest:projectTest:pom:1.0 in central (https://repo.maven.apache.org/maven2)
at org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:39) ~[aether-connector-basic-1.0.0.v20140518.jar:na]
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:355) ~[aether-connector-basic-1.0.0.v20140518.jar:na]
at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67) ~[aether-util-1.0.0.v20140518.jar:na]
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:581) ~[aether-connector-basic-1.0.0.v20140518.jar:na]
at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:249) ~[aether-connector-basic-1.0.0.v20140518.jar:na]
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520) ~[aether-impl-1.0.0.v20140518.jar:na]
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:421) ~[aether-impl-1.0.0.v20140518.jar:na]
... 16 common frames omitted
Exception in thread "main" java.lang.RuntimeException: Cannot find KieModule: ouTest:projectTest:1.0
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:117)
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:111)
at controller.DecisionServerTest.test2(DecisionServerTest.java:163)
at Main.main(Main.java:9)

Upvotes: 0

Views: 1127

Answers (1)

Sushma
Sushma

Reputation: 81

I suppose u are trying to download the jar from Kie workbench,trying to build the jar in maven and use it inside your project.In that case ,first run this command as per the below link, http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html And then add your jar dependency in yor project pom file. You can use the below code to execute the application.U will need hell lot of jars in the course of execution.Kie-ci,kie-internal being the main ones.

            KieServices kieServices = KieServices.Factory.get(); 

            ReleaseId releaseId = kieServices.newReleaseId("org.test", 
                    "kie-project-simple", "1.0"); 

            KieContainer kContainer = kieServices.newKieContainer(releaseId); 

            kScanner = kieServices.newKieScanner(kContainer); 

            System.out.println("This is a Kie-Ci example. The drl rule is packaged " + 
                    "as a kmodule in a jar and deployed in your maven repo"); 

            // Scan to discover new resources of an existing artifact 
            kScanner.scanNow(); 

            for (int i = 0; i < 100; i++) { 
                // Create a stateless session 
                kSession = kContainer.newKieSession(); 
                kSession.insert("Hello"); 
                kSession.fireAllRules(); 
                try { 
                    Thread.sleep(5000); 
                } catch (InterruptedException e) { 
                    System.out.println("Thread interrupted. Firing of rules will stop."); 
                } 
            } 

Upvotes: 1

Related Questions