[rules-users] unable to resolve method using strict-mode

Wolfgang Laun wolfgang.laun at gmail.com
Fri Oct 2 13:48:17 EDT 2009


Map() in the .drl file is bound to be interpreted as Map<Object,Object> so
that a Map.get() returns an Object. To be able to call method
getSomeMethod() you'd have to cast this result, according to

 ((SomeClass)$map.get("x")).getSomeMethod()

I fail to understand how this could ever be avoided - strict or no strict,
MVEL or not MVEL.

-W

2009/10/2 Vladimir Perlov <vladperl at hotmail.com>

>  Hi Wolfgang,
> Thank you very much for quick response!
>
> I tried your suggestion and still getting the following error:
>
> Unable to build expression for 'consequence': Failed to compile: 1
> compilation error(s): - (1,29) unable to resolve method using strict-mode:
> java.lang.Object.getSomeMethod() '
> System.out.println($map.get("x").getSomeMethod()); ' : [Rule name='TEST'] At
> least now I have only 1 compilation error comparing to the previous variant.
>
> modified rule:
>
> rule "TEST"
>     dialect "mvel"
>     when
>             $map : Map()
>     then
>             System.out.println($map.get("x").getSomeMethod());
> end
>
> I believe that problem is related to strict-mode that somehow enforced on
> Linux but not on Windows.
> I tried to remove the strict mode using the the following approach but it
> seems don't have any effect.
> We have web application with many drools rules and it's working on Windows
> but when we deployed the same application to Linux we are getting failed
> compile errors ;)
>
> KnowledgeBuilderConfiguration config =
> KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
> config.setProperty("drools.dialect.mvel.strict", "false");
> kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(config);
>
> Please advise me.
>
> By the way I'm using drools 5.0.1
>
>
> ------------------------------
> Date: Fri, 2 Oct 2009 18:30:25 +0200
> From: wolfgang.laun at gmail.com
> To: rules-users at lists.jboss.org
> Subject: Re: [rules-users] unable to resolve method using strict-mode
>
> 2009/10/2 Vladimir Perlov <vladperl at hotmail.com>
>
>
>
> Here is the rule that failed to compile on Linux:
>
> rule "TEST"
>     dialect "mvel" Send
>     when
>             map : Map()
>
>
> $map : Map()
>
> or omit '$' in the consequence.
> -W
>
>
>     then
>             System.out.println($map.get("x").getSomeMethod());
> end
>
>
>
> ------------------------------
> Lauren found her dream laptop. Find the PC that’s right for you.<http://www.microsoft.com/windows/choosepc/?ocid=ftp_val_wl_290>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20091002/4ee2bc6f/attachment.html 


More information about the rules-users mailing list