On Sep 2, 6:11 am, viktor stolbin <[email protected]> wrote:
> On 1 сен, 18:18, viktor stolbin <[email protected]> wrote:
>
>
>
>
>
> > On 28 авг, 23:17, Norris Boyd <[email protected]> wrote:
>
> > > On Aug 28, 6:47 am, viktor stolbin <[email protected]> wrote:
>
> > > > Hello everybody
> > > > I'm embedding rhino in my desktop application and faced with problem.
> > > > In script I use hibernate Restrinctions.eq() and it gets an error when
> > > > trying to call static "eq()". I wrote a test class and a test script:
> > > > Test class
>
> > > > 1. public class TestClass {
> > > > 2.
> > > > 3. public static String variable = "variable";
> > > > 4.
> > > > 5. public static String test(){
> > > > 6. return "test";
> > > > 7. }
> > > > 8.
> > > > 9. }
>
> > > > Test script
>
> > > > 1.
> > > > 2. var test1 = java.lang.Math.cos(0);
> > > > 3. var test2 =
> > > > org.eclipse.jface.viewers.StructuredSelection.EMPTY;
> > > > 4. var test3 = ru.griffo.core.ui.utils.TestClass.variable;
>
> > > > It gets error:
>
> > > > org.mozilla.javascript.EcmaError: ReferenceError: "ru" is not
> > > > defined. (<cmd>#1)
>
> > > Unlike "com", "java", etc., "ru" is not defined by default in Rhino.
> > > You have to prefix it with "Packages" as you've done below.
>
> > > > Class TestClass is in the same package my script util is. When I
> > > > changed script to:
>
> > > > 1.
> > > > 2. hibernate = Packages.org.hibernate.criterion;
> > > > 3. jface = Packages.org.eclipse.jface.viewers;
> > > > 4. test = Packages.ru.griffo.core.ui.utils;
> > > > 5.
> > > > 6. var test1 = java.lang.Math.cos(0);
> > > > 7. var test2 = jface.StructuredSelection.EMPTY;
> > > > 8. var test3 = test.TestClass.variable;
> > > > 9. var test4 = test.TestClass.test();
>
> > > > it gets the same error I get with hibernate Restriqtions.eq():
>
> > > > org.mozilla.javascript.EcmaError: TypeError: Cannot call property
> > > > test in object [JavaPackage ru.griffo.core.ui.utils.TestClass]. It is
> > > > not a function, it is "object". (<cmd>#1)
>
> > > The fact that it thinks that ru.griffo.core.ui.utils.TestClass is a
> > > package rather than a class tells me that there's some kind of
> > > classpath problem. Is the TestClass in the classpath? Perhaps you're
> > > using the -jar option to "java" so that it ignores the classpath?
>
> > > > I tried to use Importers and get this error again.
>
> > > > Script util class
>
> > > > 1. private org.mozilla.javascript.Context scriptContext;
> > > > 2. private Scriptable scriptScope;
> > > > 3.
> > > > 4. private void initServices() {
> > > > 5. scriptContext = org.mozilla.javascript.Context.enter();
> > > > 6. scriptScope = new ImporterTopLevel(scriptContext);
> > > > 7.
> > > > 8. registerToScriptEngine("out", System.out);
> > > > 9. registerToScriptEngine("boTool", boTool);
> > > > 10. registerToScriptEngine("convertTool", convertTool);
> > > > 11. registerToScriptEngine("entityDAO", entityDAO);
> > > > 12. }
>
> > > > Please, help me to solve this problem
>
> > Thank you for respond!
> > I check classpath, to be more exact, build-paths of eclipse projects,
> > and didn't find out anything unusual: package exports and plugin
> > dependencies. I have following design:
> > plugin project "core" (includes and exports js.jar)
> > plugin project "core.ui" (includes and exports TestClass and
> > ScroptUtils, depends on "ru.griffo.core")
> > plugin project "userdomain" (runs scripts, depends on both above)
>
> > Any suggestions will be helpfull.
>
> I addition, I tried to change script and find out more detais of it's
> executing
>
> Script Text:
> hibernate = Packages.org.hibernate.criterion;
> jface = Packages.org.eclipse.jface.viewers;
> test = Packages.ru.griffo.core.ui.utils;
>
> var test1 = java.lang.Math.cos(0);
> out.println(test1);
> var test2 = jface.StructuredSelection.EMPTY;
> out.println(test2);
> var test3 = test.TestClass.variable;
> out.println(test3);
>
> The result was:
> 1.0
> [JavaPackage org.eclipse.jface.viewers.StructuredSelection.EMPTY]
> [JavaPackage ru.griffo.core.ui.utils.TestClass.variable]
>
> Does it mean that rhino hadn't recognize StructuredSelection and
> TestClass classes?
Yes. As a double check one thing you could try is calling
java.lang.Class.forName('ru.griffo.core.ui.utils.TestClass') as a way
to see if the class is indeed in the classpath.
> Before using rhino 1.7R2 I used embedded one from Java 6 SE, but it
> didn't fullfill my expectations about varargs, thought it works
> perfectly with any thirdparty classes with no extra efforts.
_______________________________________________
dev-tech-js-engine-rhino mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino