[rules-users] Interface implementation not working..

Vijay K Pandey VPandey at mdes.ms.gov
Thu Dec 3 00:43:02 EST 2009


Problem is with your interface modifier declaration. Your modifier is "default" , convert that to "public" and it should be fine.

Change interface Generalized
      TO
public interface Generalized

You don't have to set "public" modifier to the "Display" method - by default interface method visibility is "public".

Vijay
________________________________
From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Deepak Jambhekar
Sent: Wednesday, December 02, 2009 9:10 PM
To: Rules Users List
Subject: Re: [rules-users] Interface implementation not working..

I am still getting the same error even after making that method as public... ??

Thanks
Deepak  Jambhekar

-----rules-users-bounces at lists.jboss.org wrote: -----
To: Rules Users List <rules-users at lists.jboss.org>
From: CK <chrisckc at gmail.com>
Sent by: rules-users-bounces at lists.jboss.org
Date: 12/02/2009 10:28PM
Subject: Re: [rules-users] Interface implementation not working..

Try changing your BOM_TRANSACTION_DETAILS Display() method access to public and see if it works.

Currently, you have it as "void Display()" in your BOM_TRANSACTION_DETAILS method declaration.  Change it to "public void Display()".  It might solve your problem.

No need to change method declaration in the interface as it's correct.

-Chris

On Dec 2, 2009, at 1:35 AM, Deepak Jambhekar wrote:



Hi....

I have created a rule which is as below
rule "myrule"

dialect "mvel"

when

tr : BOM_TRANSACTION_DETAILS( country == "CH" )

then

tr.setCarrierName( "orange" );

tr.Display();
end

And the Model class is defined as below...

interface Generalized
{

void Display();


}

public class BOM_TRANSACTION_DETAILS implements Generalized {
          getter and setter.....
          void Display()

{

.....

}
}


Now when I run this rule, it is giving me the following exception . Can any one please help me why this exception is coming....? and also when I removed the Display() from interface Generalized the code works fine...
So is this because of Interface?? Can we use interface for defining Models..??

org.drools.runtime.rule.ConsequenceException : [Error: tr.Display(): Class org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer can not access a member of class com.drools.icas.transaction.Generalized with modifiers "public abstract"]
[Near : {... Unknown ....}]
             ^
[Line: 1, Column: 0]

at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException( DefaultConsequenceExceptionHandler.java:23 )

at org.drools.common.DefaultAgenda.fireActivation( DefaultAgenda.java:943 )

at org.drools.common.DefaultAgenda.fireNextItem( DefaultAgenda.java:885 )

at org.drools.common.DefaultAgenda.fireAllRules( DefaultAgenda.java:1082 )

at org.drools.common.AbstractWorkingMemory.fireAllRules( AbstractWorkingMemory.java:682 )

at org.drools.common.AbstractWorkingMemory.fireAllRules( AbstractWorkingMemory.java:649 )

at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules( StatefulKnowledgeSessionImpl.java:177 )

at com.drools.icas.transaction.DemoTest.main( DemoTest.java:92 )
Caused by: [Error: tr.Display(): Class org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer can not access a member of class com.drools.icas.transaction.Generalized with modifiers "public abstract"]
[Near : {... Unknown ....}]
             ^
[Line: 1, Column: 0]

at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain( ReflectiveAccessorOptimizer.java:382 )

at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor( ReflectiveAccessorOptimizer.java:140 )

at org.mvel2.ast.ASTNode.getReducedValueAccelerated( ASTNode.java:137 )

at org.mvel2.MVELRuntime.execute( MVELRuntime.java:91 )

at org.mvel2.compiler.CompiledExpression.getValue( CompiledExpression.java:101 )

at org.mvel2.MVEL.executeExpression( MVEL.java:968 )

at org.drools.base.mvel.MVELConsequence.evaluate( MVELConsequence.java:89 )

at org.drools.common.DefaultAgenda.fireActivation( DefaultAgenda.java:934 )

... 6 more
Caused by: java.lang.IllegalAccessException : Class org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer can not access a member of class com.drools.icas.transaction.Generalized with modifiers "public abstract"

at sun.reflect.Reflection.ensureMemberAccess( Reflection.java:65 )

at java.lang.reflect.Method.invoke( Method.java:583 )

at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod( ReflectiveAccessorOptimizer.java:936 )

at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain( ReflectiveAccessorOptimizer.java:321 )

... 13 more



Thanks....

Deepak  Jambhekar
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain
confidential or privileged information. If you are
not the intended recipient, any dissemination, use,
review, distribution, printing or copying of the
information contained in this e-mail message
and/or attachments to it are strictly prohibited. If
you have received this communication in error,
please notify us by reply e-mail or telephone and
immediately and permanently delete the message
and any attachments. Thank you
_______________________________________________
rules-users mailing list
rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
rules-users at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


=====-----=====-----=====

Notice: The information contained in this e-mail

message and/or attachments to it may contain

confidential or privileged information. If you are

not the intended recipient, any dissemination, use,

review, distribution, printing or copying of the

information contained in this e-mail message

and/or attachments to it are strictly prohibited. If

you have received this communication in error,

please notify us by reply e-mail or telephone and

immediately and permanently delete the message

and any attachments. Thank you




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20091202/a283b209/attachment.html 


More information about the rules-users mailing list