Hello,<br />
<br />
I use the BIRT engine in a web servlet context. I use a library to define a scripted datasource and would like to externalize the javascript code which I need to setup some variables for the scripted datasource. For doing this, I created a js file in WebContent/reports/library_elements. I further referenced the library's property editor, resources section. My working directory is set to WebContent/reports. I was able to localize the js file in the resources -> add file... menu. Furthermore, before I externalized the javascript the reports and libraries were found without problems So I guess it is all properly set up.<br />
<br />
Nevertheless, when deploying to TomCat, I can't get the function to be called. I tried a js function with empty function call, just getQueryText(). In this case no error is thrown but the query text can't be retrieved. Then I tried getQueryText(reportContext), then the following error is thrown when sending the request to tomcat:<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>A BIRT exception occurred. See next exception for more information.
Error evaluating Javascript expression. Script engine error: Can't find method org.eclipse.birt.report.engine.script.internal.instance.DataSetInstance.getQueryText(org.eclipse.birt.report.engine.script.internal.ReportContextImpl). (/report/data-sets/oda-data-set[
@id="92"]/method[
@name="beforeOpen"]#1)
Script source: /report/data-sets/oda-data-set[
@id="92"]/method[
@name="beforeOpen"], line: 0, text:
__bm_beforeOpen()
org.eclipse.birt.data.engine.core.DataException: Fail to execute script in function __bm_beforeOpen(). Source:
" + queryTxt = getQueryText(reportContext);
.......</pre>
<br />
Stack trace:<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>A BIRT exception occurred. See next exception for more information.
Error evaluating Javascript expression. Script engine error: Can't find method org.eclipse.birt.report.engine.script.internal.instance.DataSetInstance.getQueryText(org.eclipse.birt.report.engine.script.internal.ReportContextImpl). (/report/data-sets/oda-data-set[
@id="92"]/method[
@name="beforeOpen"]#1)
Script source: /report/data-sets/oda-data-set[
@id="92"]/method[
@name="beforeOpen"], line: 0, text:
__bm_beforeOpen()
at org.eclipse.birt.data.engine.script.JSMethodRunner.runScript(JSMethodRunner.java:147)
at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:90)
at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:256)
at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleBeforeOpen(DataSetScriptExecutor.java:107)
at org.eclipse.birt.data.engine.impl.DataSetRuntime.beforeOpen(DataSetRuntime.java:543)
at org.eclipse.birt.data.engine.impl.QueryExecutor.dataSetBeforeOpen(QueryExecutor.java:210)
at org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:321)
at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:455)
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:190)
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:178)
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.execute(PreparedOdaDSQuery.java:145)
at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:624)
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:152)
at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:83)
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:267)
at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1939)
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
at org.eclipse.birt.report.engine.executor.DynamicTextItemExecutor.execute(DynamicTextItemExecutor.java:77)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
at org.eclipse.birt.report.engine.internal.executor.emitter.ReportItemEmitterExecutor.execute(ReportItemEmitterExecutor.java:46)
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:249)
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:262)
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:86)
at de.asweb.reportViewer.ReportHandler.getReport(ReportHandler.java:64)
at de.asweb.reportViewer.ReportController.handleRequest(ReportController.java:48)
at de.asweb.reportViewer.ReportController.doGet(ReportController.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)</pre>
<br />
Any help to resolve the issue is very much appreciated! Thanks in advance, cheers, Jakob