helloworld auf Kie Server Version 6.4.0

Ich evaluiere derzeit KIE Server, ohne KIE Workbench zu verwenden. Das Szenario, das ich auswerte, ist:

1) Ein Dritter wird mir eine drl-Datei mit seinem Wertobjekt (VO, das in drl verwendet wird) geben. Ich muss ein kjar oder jar programmatisch über eine Standard-Maven-Projektstruktur erstellen und außerdem einen Container für dieses Artefakt erstellen und in Maven Repo speichern.
2) Wenn ich eine Anfrage zur Ausführung zusammen mit den Eingabedaten für dieses Artefakt erhalte, durchREST call, ich muss den oben erstellten Container mit diesen Eingabedaten ausführen.

Ich folgte den BeispielenDie undDie

um ein einfaches "HelloWorld" -Projekt zu machen.

POM.XML

<modelVersion>4.0.0</modelVersion>
<groupId>demo</groupId>
<artifactId>Hello</artifactId>
<version>1</version>
<packaging>kjar</packaging>

<dependencies>
    <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-maven-plugin</artifactId>
        <version>6.4.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-archiver</artifactId>
        <version>3.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-archiver</artifactId>
        <version>3.4</version>
    </dependency>
</dependencies>


<build>
    <plugins>
        <plugin>
            <groupId>org.kie</groupId>
            <artifactId>kie-maven-plugin</artifactId>
            <version>6.4.0.Final</version>
            <extensions>true</extensions>
        </plugin>
    </plugins>
</build>

HelloWorld.java

package demo;

public class HelloWorld implements java.io.Serializable {

static final long serialVersionUID = 1L;

private java.lang.String message;

public HelloWorld()
{
}

public java.lang.String getMessage()
{
    return this.message;
}

public void setMessage(java.lang.String message)
{
    this.message = message;
}

public HelloWorld(java.lang.String message)
{
    this.message = message;
}

} 

HelloWorld.drl

package demo;

import demo.HelloWorld;

rule "hello"

when 
    HelloWorld(message == "Joe");
then
    System.out.println("Hello Joe!");
end

kmodule.xml

<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">

    <kbase name="demo" packages="demo">
        <ksession name="demo.session"/>
    </kbase>

</kmodule>

Benutzte einfache Maven-Projektstruktur:

Hello
 |
 |
 |--src
 |  |--- main
 |          |--java
 |          |   |---demo
 |          |         |
 |          |         |-- HelloWorld.java
 |          |
 |          |--resources
 |                  |
 |                  |--demo
 |                  |   |
 |                  |   |-- HelloWorld.drl
 |                  |
 |                  |--META-INF
 |                          |
 |                          |--kmodule.xml
 |
 |-- pom.xml

Ich bin in der Lage, einen Container 'HelloworldContainer' für die oben genannte Maven-Proj-Struktur mit dem @ zu erstelleGroupId: demo, Artifact: Hello, version: 1

Aber wenn ich versuche, es wie folgt auszuführen, bekommen interne Server-Fehler-URI:http: // localhost: 8080 / kie-server / services / rest / server / container / instance / HelloworldContainer

Headers:

 Content-Type: application/xml,
    Authorization: Basic UWRtaWLkuTW5hZG1pbg==,
    X-KIE-ContentType: XSTREAM

Körper

<batch-execution>
    <insert out-identifier="helloworld" return-object="true">
        <demo.HelloWorld>
            <message>Joe</message>
        </demo.HelloWorld> 
    </insert>
    <fire-all-rules/>
    </batch-execution>

Error Stack trace:

java.lang.IncompatibleClassChangeError: com.google.common.collect.Maps and com.google.common.collect.Maps$TransformedValuesMap disagree on InnerClasses attribute
java.lang.Class.getDeclaringClass0(Native Method)
java.lang.Class.getDeclaringClass(Class.java:1101)
sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.&lt;init&gt;(ParameterizedTypeImpl.java:52)
sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.make(ParameterizedTypeImpl.java:95)
sun.reflect.generics.factory.CoreReflectionFactory.makeParameterizedType(CoreReflectionFactory.java:105)
sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:140)
sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
sun.reflect.generics.repository.FieldRepository.getGenericType(FieldRepository.java:85)
java.lang.reflect.Field.getGenericType(Field.java:237)
com.thoughtworks.xstream.mapper.AnnotationMapper.processTypes(AnnotationMapper.java:212)
com.thoughtworks.xstream.mapper.AnnotationMapper.processAnnotations(AnnotationMapper.java:164)
com.thoughtworks.xstream.XStream.processAnnotations(XStream.java:1971)
com.thoughtworks.xstream.XStream.processAnnotations(XStream.java:1982)
org.kie.server.api.marshalling.xstream.XStreamMarshaller.&lt;init&gt;(XStreamMarshaller.java:86)
org.kie.server.api.marshalling.MarshallerFactory.getMarshaller(MarshallerFactory.java:37)
org.kie.server.services.impl.KieContainerInstanceImpl.getMarshaller(KieContainerInstanceImpl.java:111)
org.kie.server.services.drools.DroolsKieContainerCommandServiceImpl.callContainer(DroolsKieContainerCommandServiceImpl.java:59)
org.kie.server.remote.rest.drools.CommandResource.manageContainer(CommandResource.java:72)

Ich kann Kie Server 6.4.0 über den Link @ erfolgreich bereitstellehttp: //mswiderski.blogspot.in/2015/10/installing-kie-server-and-workbench-on.htm

Server startet einwandfrei, mit Ausnahme dieses "SEVERE" -Problems.

org.kie.server.services.impl.KieServerImpl.<init> Error when initializing server extension of type jBPM KIE Server extension
java.lang.RuntimeException: Unable to create EntityManagerFactory due to [PersistenceUnit: org.jbpm.domain] Unable to build EntityManagerFactory
at       org.kie.server.services.jbpm.JbpmKieServerExtension.build(JbpmKieServerExtension.java:524)
at org.kie.server.services.jbpm.JbpmKieServerExtension.init(JbpmKieServerExtension.java:155)
at org.kie.server.services.impl.KieServerImpl.<init>(KieServerImpl.java:108)
at org.kie.server.services.impl.KieServerLocator.<clinit>(KieServerLocator.java:20)
at org.kie.server.services.Bootstrap.contextInitialized(Bootstrap.java:50)
at 
...
Caused by: javax.naming.NameNotFoundException: Name     [jboss/datasources/ExampleDS] is not bound in this Context. Unable to find     [jboss].
at org.apache.naming.NamingContext.lookup(NamingContext.java:816)
at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:140)
at javax.naming.InitialContext.lookup(InitialContext.java:415)
at org.hibernate.service.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:65)
... 33 more

und andere Reihe von WARNUNGEN, obwohlorg.sonatype.guice ist in meinem m2 repo @ verfügb

26-Sep-2016 11:37:21.346 WARNING [localhost-startStop-1]     org.kie.server.services.drools.DroolsKieServerExtension.createContainer Unable     to create instance of type org.sonatype.guice.asm.MethodVisitor due to     org.sonatype.guice.asm.MethodVisitor
26-Sep-2016 11:37:21.352 WARNING [localhost-startStop-1]     org.kie.server.services.drools.DroolsKieServerExtension.createContainer Unable     to create instance of type org.sonatype.guice.asm.FieldVisitor due to     org.sonatype.guice.asm.FieldVisitor
26-Sep-2016 11:37:21.357 WARNING [localhost-startStop-1]     org.kie.server.services.drools.DroolsKieServerExtension.createContainer Unable     to create instance of type org.sonatype.guice.asm.Type due to     org.sonatype.guice.asm.Type
26-Sep-2016 11:37:21.363 WARNING [localhost-startStop-1]     org.kie.server.services.drools.DroolsKieServerExtension.createContainer Unable     to create instance of type org.sonatype.guice.asm.ClassWriter due to     org.sonatype.guice.asm.ClassWriter
26-Sep-2016 11:37:21.368 WARNING [localhost-startStop-1]     org.kie.server.services.drools.DroolsKieServerExtension.createContainer Unable     to create instance of type org.sonatype.guice.asm.Edge due to     org.sonatype.guice.asm.Edge

Antworten auf die Frage(0)

Ihre Antwort auf die Frage