JEXL: all object variables return null

"r.c.hoekstra" <[email protected]>
Newsgroups gmane.comp.jakarta.commons.user
Message-ID <[email protected]>
I'm trying to get a jexl script to work.

|// arranging namespace Print Map<String, Object> ns = new HashMap<>(1); 
ns.put("Print", System.out); // make System.out.println available in 
expressions JexlEngine je = new JexlBuilder().namespaces(ns).create(); 
// arranging custom Map for accessible variable 'agent' in script 
Map<String, Object> myMap = ....; myMap.put("test", testRef); 
JexlContext jc = new MapContext(myMap); // arranging script JexlScript 
script = je.createScript(expression); Object result = script.execute(jc); |||||

|The testRef is just a simple instance of this class: |

privatestaticclassTestContextVar {

publicString getInstanceVar(){

return"instanceValue";

}

}


with the expression being this:

|{ Print:println("blabla"); const x = test.getInstanceVar(); 
Print:println(x); return true; } |

||

The first command just prints "blabla" to the console, so the printing 
via System.out.println works flawless.

However, for the variable test: it does exist, because jexl doesn't 
report "unsolvable variable". Also, Print:println(test) just prints the 
memory address as expected.

However, any method of the test Object which I try to call, always 
returns null. I just get a null printed to the console.

Also, when I call test.instanceVar (which should be possible, it is just 
a POJO), I get "undefined property 'id', assuming false". Whereas 
test.getInstanceVar() returns just null.

Anyone any idea what could go wrong here?


thanks, Rinke
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.