[jboss-jira] [JBoss JIRA] (DROOLS-711) Kie Server unable to build KieBase which builds fine with kie-maven-plugin and unit test

Hendy Irawan (JIRA) issues at jboss.org
Fri Jun 17 10:57:01 EDT 2016


    [ https://issues.jboss.org/browse/DROOLS-711?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13254176#comment-13254176 ] 

Hendy Irawan edited comment on DROOLS-711 at 6/17/16 10:56 AM:
---------------------------------------------------------------

I get this error with 6.4.0.Final, but I'm not sure if it's exactly the same cause.

{noformat}
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'droolsConfig': Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kieBase' defined in class path resource [org/lskk/lumen/reasoner/DroolsConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.kie.api.KieBase]: Circular reference involving containing bean 'droolsConfig' - consider declaring the factory method as static for independence from its containing instance. Factory method 'kieBase' threw exception; nested exception is java.lang.RuntimeException: Error while creating KieBase[Message [id=1, level=ERROR, path=rabbitmq.drl, line=25, column=0
   text=Field Reader does not exist for declaration '$delayMillis' in '$delayMillis : delayMillis' in the rule 'Send SemanticMessage to RabbitMQ'], Message [id=2, level=ERROR, path=story.drl, line=22, column=0
   text=Field Reader does not exist for declaration '$id' in '$id : id' in the rule 'get random story']]
{noformat}

story.drl :

{noformat}
dialect "mvel"

import org.lskk.lumen.reasoner.*
import org.lskk.lumen.reasoner.event.*
import org.lskk.lumen.reasoner.expression.*
import org.lskk.lumen.reasoner.intent.*
import org.lskk.lumen.reasoner.story.*

global org.slf4j.Logger log
global StoryRepository storyRepo

declare TellStory
    @role( event )
end

declare PropositionTold
    @role( event )
end

rule "get random story"
when
    $intent : TellStory(story == null, $id : id)
then
    log.info("Setting story for intent {}", $intent);
    modify($intent) {
        setStoryId("soon_see"),
        setStory(storyRepo.findOne("soon_see"))
    }
end

rule "tell initial proposition"
when
    $tellStory : TellStory(story != null)
    not( PropositionTold(tellStory == $tellStory) )
then
    log.info("Telling initial proposition for {}", $tellStory);
    PropositionTold $propositionTold = new PropositionTold($tellStory, 0);
    insert($propositionTold);
    boolean done = $propositionTold.index >= $tellStory.story.propositions.size - 1;
    if (done) {
        log.info("Done telling {} propositions for {}", $tellStory.story.propositions.size, $tellStory);
    }
    modify($tellStory) {
        setLastPropositionIndex($propositionTold.index),
        setDone(done)
    }
end

rule "tell next proposition until done"
when
    $lastProposition : PropositionTold($tellStory : tellStory, $lastIndex : index,
        tellStory.done == false)
    not( PropositionTold(tellStory == $tellStory, index == $lastIndex + 1, this after[0s,10s] $lastProposition) )
then
    log.debug("Telling proposition {} for {}", $lastIndex + 1, $tellStory);
    PropositionTold $propositionTold = new PropositionTold($tellStory, $lastIndex + 1);
    insert($propositionTold);
    boolean done = $propositionTold.index >= $tellStory.story.propositions.size - 1;
    if (done) {
        log.info("Done telling {} propositions for {}", $tellStory.story.propositions.size, $tellStory);
    }
    modify($tellStory) {
        setLastPropositionIndex($propositionTold.index),
        setDone(done)
    }
end

rule "communicate proposition"
when
    $proposition : PropositionTold($tellStory : tellStory, $index : index)
then
    log.debug("Expressing proposition {} for {}", $index, $tellStory);
    $tellStory.channel.express($tellStory.avatarId, $tellStory.story.propositions[$index], true, null);
end
{noformat}


was (Author: ceefour):
I get this error with 6.4.0.Final, but I'm not sure if it's exactly the same cause.

{noformat}
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'droolsConfig': Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kieBase' defined in class path resource [org/lskk/lumen/reasoner/DroolsConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.kie.api.KieBase]: Circular reference involving containing bean 'droolsConfig' - consider declaring the factory method as static for independence from its containing instance. Factory method 'kieBase' threw exception; nested exception is java.lang.RuntimeException: Error while creating KieBase[Message [id=1, level=ERROR, path=rabbitmq.drl, line=25, column=0
   text=Field Reader does not exist for declaration '$delayMillis' in '$delayMillis : delayMillis' in the rule 'Send SemanticMessage to RabbitMQ'], Message [id=2, level=ERROR, path=story.drl, line=22, column=0
   text=Field Reader does not exist for declaration '$id' in '$id : id' in the rule 'get random story']]
{noformat}

> Kie Server unable to build KieBase which builds fine with kie-maven-plugin and unit test
> ----------------------------------------------------------------------------------------
>
>                 Key: DROOLS-711
>                 URL: https://issues.jboss.org/browse/DROOLS-711
>             Project: Drools
>          Issue Type: Bug
>    Affects Versions: 6.2.0.CR4, 6.2.0.Final
>         Environment: kie-server on WildFly 8.2.0.Final running with JDK 8
>            Reporter: Matteo Mortari
>            Assignee: Mario Fusco
>         Attachments: 20150213.DROOLS-711.zip
>
>
> I have deployed Kie Server kie-server-distribution-wars-6.2.0.CR4-ee7.war on WildFly 8.2.0.Final.
> I have a simple rule base in the project {{client-test-rules}} as per below, in a kie project structured as kie-drools-archetype, which passes all test and install in m2 repo with {{mvn clean install}}.
> {code:java}
> package com.acme.client_test_rules;
> declare Measurement
>  @role(event)
> end
> rule "keep latest Measurement ID"
> salience 1000
> no-loop
> when
>     $old : Measurement( $id : id )
>     $new : Measurement( id == $id , this after $old  )
> then
>  System.out.println("keep latest old : "+$old+" new (kept): "+$new);
>     retract($old);
> end
> {code}
> Then I issue Kie Server commands, using the client library, using project {{client-test}} to instantiate a container for the same artifact, but in the wildfly logs I get the following error below - which doesn't happen for kie-maven-plugin nor during unit test. Please note I'm assuming user {{kieserver}} with password {{kieserver}} is a valid user for the Kie Server Realm, or configure wildfly or the code in the project {{client-test}} accordingly to your environment =).
> {code}
> 09:41:41,700 ERROR [org.drools.compiler.kie.builder.impl.AbstractKieModule] (default task-4) Unable to build KieBaseModel:kbase1
> Unable to create Field Extractor for 'id'Field/method 'id' not found for class 'com.acme.client_test_rules.Measurement'
>  : [Rule name='keep latest Measurement ID']
> java.lang.RuntimeException: Field/method 'id' not found for class 'com.acme.client_test_rules.Measurement'
> Unable to create Field Extractor for 'id'Field/method 'id' not found for class 'com.acme.client_test_rules.Measurement'
>  : [Rule name='keep latest Measurement ID']
> java.lang.RuntimeException: Field/method 'id' not found for class 'com.acme.client_test_rules.Measurement'
> Field Reader does not exist for declaration '$id' in 'predicate 'id == $id'' in the rule 'keep latest Measurement ID' : [Rule name='keep latest Measurement ID']
> Unable to Analyse Expression id == $id:
> [Error: unable to resolve method using strict-mode: com.acme.client_test_rules.Measurement.id()]
> [Near : {... id == $id ....}]
>              ^
> [Line: 12, Column: 4] : [Rule name='keep latest Measurement ID']
> {code}
> Can you kindly verify if some bug is hiding behind this odd behavior, please?
> Thank you
> MM



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list