Since I'm trying to implement a system that needs to update all the connected clients when some change is caused in the server by any one of the client, I chose Channel Api of Google App Engine. Since I'm basically creating a Java Stand alone application, I'm trying to use the Java ScriptEngine to create a Javascript client and run it in the java application, but i get the following error:
Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: missing ; before statement (<Unknown source>#1) in <Unknown source> at line number 1
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:224)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:240)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
at com.ma_anahcorp.clipcohere.MainClass.main(MainClass.java:43)
Caused by: sun.org.mozilla.javascript.internal.EvaluatorException: missing ; before statement (<Unknown source>#1)
at sun.org.mozilla.javascript.internal.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:109)
at sun.org.mozilla.javascript.internal.DefaultErrorReporter.error(DefaultErrorReporter.java:96)
at sun.org.mozilla.javascript.internal.Parser.addError(Parser.java:231)
at sun.org.mozilla.javascript.internal.Parser.addError(Parser.java:209)
at sun.org.mozilla.javascript.internal.Parser.reportError(Parser.java:266)
at sun.org.mozilla.javascript.internal.Parser.reportError(Parser.java:253)
at sun.org.mozilla.javascript.internal.Parser.reportError(Parser.java:246)
at sun.org.mozilla.javascript.internal.Parser.autoInsertSemicolon(Parser.java:1110)
at sun.org.mozilla.javascript.internal.Parser.statementHelper(Parser.java:1087)
at sun.org.mozilla.javascript.internal.Parser.statement(Parser.java:944)
at sun.org.mozilla.javascript.internal.Parser.parse(Parser.java:569)
at sun.org.mozilla.javascript.internal.Parser.parse(Parser.java:531)
at sun.org.mozilla.javascript.internal.Context.compileImpl(Context.java:2438)
at sun.org.mozilla.javascript.internal.Context.compileReader(Context.java:1355)
at sun.org.mozilla.javascript.internal.Context.compileReader(Context.java:1327)
at sun.org.mozilla.javascript.internal.Context.evaluateReader(Context.java:1166)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:214)
... 3 more
I kindly look forward for some help or suggetsion
Here's my code snippet:
engine.eval("channel = new goog.appengine.Channel('token');"
+"socket = channel.open();"
+"socket.onopen = onOpened;"
+"socket.onmessage = onMessage;"
+"socket.onerror = onError;"
+"socket.onclose = onClose;"
+"onOpened = function(){"
+ "alert('Opened');"
+"}"
+"onMessage = function(message) {"
+ "print('Message arrived= '+ message.data);"
+ "print('message');"
+"}");
And when referred the documentation, it said add the following script in your client Html page, but where can I, in my case?
script:
<script type='text/javascript' src='/_ah/channel/jsapi'></script>
I kindly look forward for some help or suggestion
Since I'm trying to implement a system that needs to update all the connected clients when some change is caused in the server by any one of the client, I chose Channel Api of Google App Engine. Since I'm basically creating a Java Stand alone application, I'm trying to use the Java ScriptEngine to create a Javascript client and run it in the java application, but i get the following error:
Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "goog" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:224)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:240)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
Caused by: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "goog" is not defined. (<Unknown source>#1)
at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3770)
at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3748)
at sun.org.mozilla.javascript.internal.ScriptRuntime.notFoundError(ScriptRuntime.java:3833)
at sun.org.mozilla.javascript.internal.ScriptRuntime.name(ScriptRuntime.java:1760)
at sun.org.mozilla.javascript.internal.Interpreter.interpretLoop(Interpreter.java:1785)
at sun.org.mozilla.javascript.internal.Interpreter.interpret(Interpreter.java:849)
at sun.org.mozilla.javascript.internal.InterpretedFunction.call(InterpretedFunction.java:162)
at sun.org.mozilla.javascript.internal.ContextFactory.doTopCall(ContextFactory.java:430)
at com.sun.script.javascript.RhinoScriptEngine$1.superDoTopCall(RhinoScriptEngine.java:116)
at com.sun.script.javascript.RhinoScriptEngine$1.doTopCall(RhinoScriptEngine.java:109)
at sun.org.mozilla.javascript.internal.ScriptRuntime.doTopCall(ScriptRuntime.java:3160)
at sun.org.mozilla.javascript.internal.InterpretedFunction.exec(InterpretedFunction.java:173)
at sun.org.mozilla.javascript.internal.Context.evaluateReader(Context.java:1169)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:214)
... 3 more
Here's my code snippet:
engine.eval("importClass(Packages.java.awt.datatransfer.DataFlavor);"
+"channel = new goog.appengine.Channel('token');"
+"socket = channel.open();"
+"socket.onopen = onOpened;"
+"socket.onmessage = onMessage;"
+"socket.onerror = onError;"
+"socket.onclose = onClose;"
+"onOpened = function(){"
+ "alert('Opened');"
+"};"
+"onMessage = function(message) {"
+ "print('Message arrived= '+ message.data);"
+ "print('message');"
+"};");