Not sure if this is a bug in HttpUnit/Rhino, or something on my part.
I have a jsp page that loads an external javascript file as follows:
<script charset="UTF-8" type="text/javascript" src="/javascript/rts.js"></script>
both the jsp and js files are saved in UTF-8 format. I am also sure the jsp has all the page, request/response encoding, etc in UTF-8 correctly too, as I have been testing this page for several weeks using IE and firefox.
Now when I try to run this thru HttpUnit, it gives a syntax error. But then i changed to have the javascript in-place instead of loading externally, and it works! i.e. by removing the src attribute in <script>, but copy&paste the whole rts.js in between the <script> and </script>.
Note: the js file contains some validation logic that involves foreign characters, which is why UTF-8.
Really appreciate if someone can help me to resolve this so that i can avoid resorting to copy&paste the whole rts.js to every jsp.
here is the complete stack trace:
SyntaxError: illegal character (httpunit; )
at org.mozilla.javascript.NativeGlobal.constructError(NativeGlobal.java:597)
at org.mozilla.javascript.TokenStream.reportSyntaxError(TokenStream.java:1324)
at org.mozilla.javascript.TokenStream.getToken(TokenStream.java:1302)
at org.mozilla.javascript.Parser.memberExprTail(Parser.java:1213)
at org.mozilla.javascript.Parser.memberExpr(Parser.java:1204)
at org.mozilla.javascript.Parser.unaryExpr(Parser.java:1115)
at org.mozilla.javascript.Parser.mulExpr(Parser.java:1062)
at org.mozilla.javascript.Parser.addExpr(Parser.java:1045)
at org.mozilla.javascript.Parser.shiftExpr(Parser.java:1032)
at org.mozilla.javascript.Parser.relExpr(Parser.java:1015)
at org.mozilla.javascript.Parser.eqExpr(Parser.java:1002)
at org.mozilla.javascript.Parser.bitAndExpr(Parser.java:991)
at org.mozilla.javascript.Parser.bitXorExpr(Parser.java:980)
at org.mozilla.javascript.Parser.bitOrExpr(Parser.java:969)
at org.mozilla.javascript.Parser.andExpr(Parser.java:957)
at org.mozilla.javascript.Parser.orExpr(Parser.java:945)
at org.mozilla.javascript.Parser.condExpr(Parser.java:928)
at org.mozilla.javascript.Parser.assignExpr(Parser.java:909)
at org.mozilla.javascript.Parser.expr(Parser.java:898)
at org.mozilla.javascript.Parser.statementHelper(Parser.java:791)
at org.mozilla.javascript.Parser.statement(Parser.java:387)
at org.mozilla.javascript.Parser.parse(Parser.java:128)
at org.mozilla.javascript.Context.compile(Context.java:2053)
at org.mozilla.javascript.Context.compile(Context.java:2006)
at org.mozilla.javascript.Context.compileReader(Context.java:899)
at org.mozilla.javascript.Context.evaluateReader(Context.java:817)
at org.mozilla.javascript.Context.evaluateString(Context.java:784)
at com.meterware.httpunit.javascript.JavaScript$JavaScriptEngine.executeScript(JavaScript.java:122)
at com.meterware.httpunit.scripting.ScriptableDelegate.runScript(ScriptableDelegate.java:64)
at com.meterware.httpunit.parsing.ScriptFilter.getTranslatedScript(ScriptFilter.java:150)
at com.meterware.httpunit.parsing.ScriptFilter.endElement(ScriptFilter.java:131)
at org.cyberneko.html.HTMLTagBalancer.callEndElement(Unknown Source)
at org.cyberneko.html.HTMLTagBalancer.endElement(Unknown Source)
at org.cyberneko.html.HTMLScanner$SpecialScanner.scan(Unknown Source)
at org.cyberneko.html.HTMLScanner.scanDocument(Unknown Source)
at org.cyberneko.html.HTMLConfiguration.parse(Unknown Source)
at org.cyberneko.html.HTMLConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at com.meterware.httpunit.parsing.NekoHTMLParser.parse(NekoHTMLParser.java:41)
at com.meterware.httpunit.HTMLPage.parse(HTMLPage.java:244)
at com.meterware.httpunit.WebResponse.getReceivedPage(WebResponse.java:1014)
at com.meterware.httpunit.WebResponse$Scriptable.load(WebResponse.java:611)
at com.meterware.httpunit.javascript.JavaScript$Window.initialize(JavaScript.java:424)
at com.meterware.httpunit.javascript.JavaScript.run(JavaScript.java:80)
at com.meterware.httpunit.javascript.JavaScriptEngineFactory.associate(JavaScriptEngineFactory.java:46)
at com.meterware.httpunit.RequestContext.runScripts(RequestContext.java:44)
at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:119)
at com.meterware.httpunit.WebClient.getResponse(WebClient.java:112)
at net.sourceforge.jwebunit.HttpUnitDialog.<init>(HttpUnitDialog.java:48)
at net.sourceforge.jwebunit.WebTester.beginAt(WebTester.java:55)
at net.sourceforge.jwebunit.WebTestCase.beginAt(WebTestCase.java:46)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Not sure if this is a bug in HttpUnit/Rhino, or something on my part.
I have a jsp page that loads an external javascript file as follows:
<script charset="UTF-8" type="text/javascript" src="/javascript/rts.js"></script>
both the jsp and js files are saved in UTF-8 format. I am also sure the jsp has all the page, request/response encoding, etc in UTF-8 correctly too, as I have been testing this page for several weeks using IE and firefox.
Now when I try to run this thru HttpUnit, it gives a syntax error. But then i changed to have the javascript in-place instead of loading externally, and it works! i.e. by removing the src attribute in <script>, but copy&paste the whole rts.js in between the <script> and </script>.
Note: the js file contains some validation logic that involves foreign characters, which is why UTF-8.
Really appreciate if someone can help me to resolve this so that i can avoid resorting to copy&paste the whole rts.js to every jsp.
here is the complete stack trace:
SyntaxError: illegal character (httpunit; )
at org.mozilla.javascript.NativeGlobal.constructError(NativeGlobal.java:597)
at org.mozilla.javascript.TokenStream.reportSyntaxError(TokenStream.java:1324)
at org.mozilla.javascript.TokenStream.getToken(TokenStream.java:1302)
at org.mozilla.javascript.Parser.memberExprTail(Parser.java:1213)
at org.mozilla.javascript.Parser.memberExpr(Parser.java:1204)
at org.mozilla.javascript.Parser.unaryExpr(Parser.java:1115)
at org.mozilla.javascript.Parser.mulExpr(Parser.java:1062)
at org.mozilla.javascript.Parser.addExpr(Parser.java:1045)
at org.mozilla.javascript.Parser.shiftExpr(Parser.java:1032)
at org.mozilla.javascript.Parser.relExpr(Parser.java:1015)
at org.mozilla.javascript.Parser.eqExpr(Parser.java:1002)
at org.mozilla.javascript.Parser.bitAndExpr(Parser.java:991)
at org.mozilla.javascript.Parser.bitXorExpr(Parser.java:980)
at org.mozilla.javascript.Parser.bitOrExpr(Parser.java:969)
at org.mozilla.javascript.Parser.andExpr(Parser.java:957)
at org.mozilla.javascript.Parser.orExpr(Parser.java:945)
at org.mozilla.javascript.Parser.condExpr(Parser.java:928)
at org.mozilla.javascript.Parser.assignExpr(Parser.java:909)
at org.mozilla.javascript.Parser.expr(Parser.java:898)
at org.mozilla.javascript.Parser.statementHelper(Parser.java:791)
at org.mozilla.javascript.Parser.statement(Parser.java:387)
at org.mozilla.javascript.Parser.parse(Parser.java:128)
at org.mozilla.javascript.Context.compile(Context.java:2053)
at org.mozilla.javascript.Context.compile(Context.java:2006)
at org.mozilla.javascript.Context.compileReader(Context.java:899)
at org.mozilla.javascript.Context.evaluateReader(Context.java:817)
at org.mozilla.javascript.Context.evaluateString(Context.java:784)
at com.meterware.httpunit.javascript.JavaScript$JavaScriptEngine.executeScript(JavaScript.java:122)
at com.meterware.httpunit.scripting.ScriptableDelegate.runScript(ScriptableDelegate.java:64)
at com.meterware.httpunit.parsing.ScriptFilter.getTranslatedScript(ScriptFilter.java:150)
at com.meterware.httpunit.parsing.ScriptFilter.endElement(ScriptFilter.java:131)
at org.cyberneko.html.HTMLTagBalancer.callEndElement(Unknown Source)
at org.cyberneko.html.HTMLTagBalancer.endElement(Unknown Source)
at org.cyberneko.html.HTMLScanner$SpecialScanner.scan(Unknown Source)
at org.cyberneko.html.HTMLScanner.scanDocument(Unknown Source)
at org.cyberneko.html.HTMLConfiguration.parse(Unknown Source)
at org.cyberneko.html.HTMLConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at com.meterware.httpunit.parsing.NekoHTMLParser.parse(NekoHTMLParser.java:41)
at com.meterware.httpunit.HTMLPage.parse(HTMLPage.java:244)
at com.meterware.httpunit.WebResponse.getReceivedPage(WebResponse.java:1014)
at com.meterware.httpunit.WebResponse$Scriptable.load(WebResponse.java:611)
at com.meterware.httpunit.javascript.JavaScript$Window.initialize(JavaScript.java:424)
at com.meterware.httpunit.javascript.JavaScript.run(JavaScript.java:80)
at com.meterware.httpunit.javascript.JavaScriptEngineFactory.associate(JavaScriptEngineFactory.java:46)
at com.meterware.httpunit.RequestContext.runScripts(RequestContext.java:44)
at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:119)
at com.meterware.httpunit.WebClient.getResponse(WebClient.java:112)
at net.sourceforge.jwebunit.HttpUnitDialog.<init>(HttpUnitDialog.java:48)
at net.sourceforge.jwebunit.WebTester.beginAt(WebTester.java:55)
at net.sourceforge.jwebunit.WebTestCase.beginAt(WebTestCase.java:46)