The Java code in the archive just compiles a .drl file, and there's no reason this should fail. The class cast would only appear to be missing after a Map object is inserted into WM, and the session is run so that the rule fires. -W
2009/10/2 Vladimir Perlov <vladp...@hotmail.com> > It's compiled and working on Windows without any casting :) > Check out the test project I attached. > You will see that the rule will compile from web application (Windows only) > or with Java SE application. The web application using JSF so in case to run > it use application server with included JSF library. > > http://download.java.net/glassfish/v3/promoted/ > > > ------------------------------ > Date: Fri, 2 Oct 2009 19:48:17 +0200 > > From: wolfgang.l...@gmail.com > To: rules-users@lists.jboss.org > Subject: Re: [rules-users] unable to resolve method using strict-mode > > 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 > > > > ------------------------------ > Hotmail® has ever-growing storage! Don’t worry about storage limits. Check > it > out.<http://windowslive.com/Tutorial/Hotmail/Storage?ocid=TXT_TAGLM_WL_HM_Tutorial_Storage_062009> > > _______________________________________________ > 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