<p>Hello everyone,</p>
<p> </p>
<p>I've recently installed BIRT webviewer on a debian machine with BIRT runtine 4.5.0. The engine itself is installed in the webapps/birt directory and since I've managed to successfully deploy about a dozen reports so far, I figured everything was correctly configured.</p>
<p> </p>
<p>However, troubles started when I tried deploying a report that had an imbedded script starting with those lines:</p>
<pre class="_prettyXprint">
importPackage(Packages.org.eclipse.birt.report.item.crosstab.core.de);
importPackage( Packages.org.eclipse.birt.report.model.api );
importPackage( Packages.org.eclipse.birt.report.item.crosstab.core.util);
importPackage( Packages.org.eclipse.birt.report.item.crosstab.core);
importPackage( Packages.org.eclipse.birt.report.model.api.elements);</pre>
<p>Given that the script runs correctly both on my local machine and on our current production environment (which runs with JavaBridge), I'll spare you the rest of the script. The error happens on the very first line anyway. Here's the error I have:</p>
<pre class="_prettyXprint">
birt.core.JavascriptCommonError ( 1 time(s) )
detail : org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "importPackage(Packages.org.eclipse.birt.report.item.crosstab.core.de);
importPackage( Packages.org.eclipse.birt.report.model.api );
importPackage( Packages.org.eclipse.birt.report.item.crosstab.core.util);
importPackage( Packages.org.eclipse.birt.report.item.crosstab.core);
importPackage( Packages.org.eclipse.birt.report.model.api.elements);
var eF = reportContext.getDesignHandle().getElementFactory();
var srt = eF.newSortElement();
if(params["pOrderBy"].value == "SC")
srt.setKey("data[\"Total_GRCertificat/Certificat\"]")
else
srt.setKey("data[\"nbfois_GRCertificat/Age\"]")
srt.setDirection(DesignChoiceConstants.SORT_DIRECTION_DESC);
var xtab = reportContext.getDesignHandle().findElement("tab");
var xtabhandle = xtab.getReportItem();
var rws = xtabhandle.getCrosstabView(ICrosstabConstants.ROW_AXIS_TYPE);
var lvh = rws.getDimension("GRCertificat").getLevel(0);
lvh.getModelHandle( ).add( ILevelViewConstants.SORT_PROP, srt );":
String index out of range: 3
at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.addException(ScriptExecutor.java:249)
at org.eclipse.birt.report.engine.script.internal.ReportScriptExecutor.handleBeforeFactory(ReportScriptExecutor.java:122)
at org.eclipse.birt.report.engine.api.impl.EngineTask.startFactory(EngineTask.java:2039)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:101)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:937)
at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:973)
at org.eclipse.birt.report.service.actionhandler.BirtRunAndRenderActionHandler.__execute(BirtRunAndRenderActionHandler.java:76)
at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
at org.eclipse.birt.report.presentation.aggregation.layout.EngineFragment.doService(EngineFragment.java:318)
at org.eclipse.birt.report.presentation.aggregation.AbstractBaseFragment.service(AbstractBaseFragment.java:76)
at org.eclipse.birt.report.servlet.BirtEngineServlet.__doGet(BirtEngineServlet.java:116)
at org.eclipse.birt.report.servlet.BaseReportEngineServlet.doGet(BaseReportEngineServlet.java:185)
at org.eclipse.birt.report.servlet.BaseReportEngineServlet.doPost(BaseReportEngineServlet.java:224)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.eclipse.birt.report.servlet.BaseReportEngineServlet.service(BaseReportEngineServlet.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.eclipse.birt.core.exception.CoreException: There are errors evaluating script "importPackage(Packages.org.eclipse.birt.report.item.crosstab.core.de);
importPackage( Packages.org.eclipse.birt.report.model.api );
importPackage( Packages.org.eclipse.birt.report.item.crosstab.core.util);
importPackage( Packages.org.eclipse.birt.report.item.crosstab.core);
importPackage( Packages.org.eclipse.birt.report.model.api.elements);
var eF = reportContext.getDesignHandle().getElementFactory();
var srt = eF.newSortElement();
if(params["pOrderBy"].value == "SC")
srt.setKey("data[\"Total_GRCertificat/Certificat\"]")
else
srt.setKey("data[\"nbfois_GRCertificat/Age\"]")
srt.setDirection(DesignChoiceConstants.SORT_DIRECTION_DESC);
var xtab = reportContext.getDesignHandle().findElement("tab");
var xtabhandle = xtab.getReportItem();
var rws = xtabhandle.getCrosstabView(ICrosstabConstants.ROW_AXIS_TYPE);
var lvh = rws.getDimension("GRCertificat").getLevel(0);
lvh.getModelHandle( ).add( ILevelViewConstants.SORT_PROP, srt );":
String index out of range: 3
at org.eclipse.birt.report.engine.javascript.JavascriptEngine.evaluate(JavascriptEngine.java:295)
at org.eclipse.birt.core.script.ScriptContext.evaluate(ScriptContext.java:159)
at org.eclipse.birt.report.engine.executor.ExecutionContext.evaluate(ExecutionContext.java:789)
at org.eclipse.birt.report.engine.executor.ExecutionContext.evaluate(ExecutionContext.java:718)
at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.handleScriptInternal(ScriptExecutor.java:118)
at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.handleScript(ScriptExecutor.java:105)
at org.eclipse.birt.report.engine.script.internal.ReportScriptExecutor.handleBeforeFactory(ReportScriptExecutor.java:114)
... 40 more
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 3
at java.lang.String.charAt(String.java:658)
at org.apache.catalina.loader.WebappClassLoaderBase.filter(WebappClassLoaderBase.java:2780)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.birt.report.engine.executor.ApplicationClassLoader.loadClass(ApplicationClassLoader.java:89)
at org.mozilla.javascript.Kit.classOrNull(Kit.java:60)
at org.mozilla.javascript.NativeJavaPackage.getPkgProperty(NativeJavaPackage.java:127)
at org.mozilla.javascript.NativeJavaPackage.get(NativeJavaPackage.java:82)
at org.mozilla.javascript.NativeJavaTopPackage.init(NativeJavaTopPackage.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.mozilla.javascript.ScriptableObject.buildClassCtor(ScriptableObject.java:1225)
at org.mozilla.javascript.LazilyLoadedCtor.buildValue0(LazilyLoadedCtor.java:105)
at org.mozilla.javascript.LazilyLoadedCtor.buildValue(LazilyLoadedCtor.java:96)
at org.mozilla.javascript.LazilyLoadedCtor.init(LazilyLoadedCtor.java:66)
at org.mozilla.javascript.ScriptableObject$GetterSlot.getValue(ScriptableObject.java:307)
at org.mozilla.javascript.ScriptableObject$RelinkedSlot.getValue(ScriptableObject.java:347)
at org.mozilla.javascript.ScriptableObject.get(ScriptableObject.java:456)
at org.mozilla.javascript.IdScriptableObject.get(IdScriptableObject.java:329)
at org.mozilla.javascript.ImporterTopLevel.get(ImporterTopLevel.java:96)
at org.mozilla.javascript.ScriptableObject.getProperty(ScriptableObject.java:2184)
at org.mozilla.javascript.ScriptRuntime.topScopeName(ScriptRuntime.java:1824)
at org.mozilla.javascript.ScriptRuntime.nameOrFunction(ScriptRuntime.java:1791)
at org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java:1733)
at org.mozilla.javascript.gen._report_method__name__beforeFactory___222._c_script_0(/report/method[
@name="beforeFactory"]:1)
at org.mozilla.javascript.gen._report_method__name__beforeFactory___222.call(/report/method[
@name="beforeFactory"])
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
at org.mozilla.javascript.gen._report_method__name__beforeFactory___222.call(/report/method[
@name="beforeFactory"])
at org.mozilla.javascript.gen._report_method__name__beforeFactory___222.exec(/report/method[
@name="beforeFactory"])
at org.eclipse.birt.report.engine.javascript.JavascriptEngine.evaluate(JavascriptEngine.java:290)
... 46 more</pre>
<p>I've done a couple of test and any of the importPackage statement will trigger this error. The only thing I can see is that importPackage somehow doesn't find the packages I'm trying to import, but I have absolutely no idea how to fix this. I'm really at my wits end so any suggestion would be greatly appreciated.</p>
<p> </p>
<p>Thanks in advance.</p>
<p> </p>
<p> </p>