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 <vladp...@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.l...@gmail.com > To: rules-users@lists.jboss.org > Subject: Re: [rules-users] unable to resolve method using strict-mode > > 2009/10/2 Vladimir Perlov <vladp...@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@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > >
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users