I guess I'm missing something obvious from the documentation, but I
can't figure out how to let the javascript access a Java object. I
guess the error means it can access it but for some reason can't access
the method. Can anyone correct me?
import org.mozilla.javascript.Context;
import org.mozilla.javascript.ScriptableObject;
public class RhinoTest {
public static void main(String[] args) {
Context context = Context.enter();
ScriptableObject scope = context.initStandardObjects();
ScriptableObject.putProperty(scope, "out", Context.javaToJS(new
LiveSite(), scope));
context.evaluateString(scope, "out.print('a');", "asdads", 0, null);
}
}
class LiveSite {
public void print(String a) {
System.out.println(a);
}
}
gives me the following exception:
Exception in thread "main" org.mozilla.javascript.EcmaError: TypeError:
Cannot find function print in object lives...@e70e30.
at
org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3654)
at
org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3632)
at
org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3660)
at
org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3679)
at
org.mozilla.javascript.ScriptRuntime.notFunctionError(ScriptRuntime.java:3743)
at
org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThisHelper(ScriptRuntime.java:2247)
at
org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2214)
at
org.mozilla.javascript.gen.c1._c0(asdads:0)
at org.mozilla.javascript.gen.c1.call(asdads)
at
org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398)
at
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
at org.mozilla.javascript.gen.c1.call(asdads)
at org.mozilla.javascript.gen.c1.exec(asdads)
at org.mozilla.javascript.Context.evaluateString(Context.java:1104)
at RhinoTest.main(RhinoTest.java:9)
_______________________________________________
dev-tech-js-engine-rhino mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino