Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-2502

Declare role event erase exists class

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Major Major
    • None
    • 6.5.0.Final, 7.0.0.Final, 7.1.0.Final, 7.2.0.Final, 7.3.0.Final, 7.4.1.Final, 7.5.0.Final, 7.6.0.Final, 7.7.0.Final
    • kie server
    • None
    • Hide

      I created a fact POJO in drools workbench.
      Example:

      public class MyFact1 {
            private java.lang.String name;
             public java.lang.String getName() {
              return name;
            }
            public void setName(java.lang.String name) {
                this.name=name;
            }
      }
      
      public class MyFact2 {
            private java.lang.String name;
             public java.lang.String getName() {
              return name;
            }
            public void setName(java.lang.String name) {
                this.name=name;
            }
      }
      

      then i define drl

      packadge com.my.rules
      
      rule "MyRule"
      when
        MyFact( )
      then
        MyFact2 fact2 = new MyFact2();
        fact2.setName("blabla");
        insert(fact2);
      end
      

      This is work fine.
      But when i declare my classes as events:

      packadge com.my.rules
      
      declare MyFact1
        @role(event)
        @expires(1d)
      end
      
      declare MyFact2
        @role(event)
        @expires(1d)
      end
      
      rule "MyRule"
      when
        MyFact( )
      then
        MyFact2 fact2 = new MyFact2();
        fact2.setName("blabla");
        insert(fact2);
      end
      

      I get a UnhandledException: java.lang.NoSuchMethodError: com.my.rules.MyFact2.setName(Ljava/lang/String in kie server logs.
      Please fix it.

      Show
      I created a fact POJO in drools workbench. Example: public class MyFact1 { private java.lang. String name; public java.lang. String getName() { return name; } public void setName(java.lang. String name) { this .name=name; } } public class MyFact2 { private java.lang. String name; public java.lang. String getName() { return name; } public void setName(java.lang. String name) { this .name=name; } } then i define drl packadge com.my.rules rule "MyRule" when MyFact( ) then MyFact2 fact2 = new MyFact2(); fact2.setName( "blabla" ); insert(fact2); end This is work fine. But when i declare my classes as events: packadge com.my.rules declare MyFact1 @role(event) @expires(1d) end declare MyFact2 @role(event) @expires(1d) end rule "MyRule" when MyFact( ) then MyFact2 fact2 = new MyFact2(); fact2.setName( "blabla" ); insert(fact2); end I get a UnhandledException: java.lang.NoSuchMethodError: com.my.rules.MyFact2.setName(Ljava/lang/String in kie server logs. Please fix it.
    • NEW
    • NEW

      Declare @role(event) rewrite exists class in drools workbench and kie execution server.
      All methods are losts.

            trikkola Toni Rikkola
            aarevkov Alexander Revkov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: