Javascript 4.5.0中的BIRT报告生成在正则表达式(<;inline>;2)后抛出无效标志

Javascript 4.5.0中的BIRT报告生成在正则表达式(<;inline>;2)后抛出无效标志,javascript,java,eclipse,birt,Javascript,Java,Eclipse,Birt,我们最近将BIRT从2.6升级到了4.5.0,使用旧版本开发的所有报表设计都可以在4.5.0中正常工作,只有一个例外 报告生成成功,但HTML报告显示以下错误 “org.mozilla.javascript.EvaluatorException:正则表达式(#2)后的标志无效” 我对BIRT很陌生,我不明白是什么导致了这个问题。如果有人能帮助我了解这个问题的根本原因,那就太好了 HTML报告文件中显示的堆栈跟踪: The following items have errors: OdaData

我们最近将BIRT从2.6升级到了4.5.0,使用旧版本开发的所有报表设计都可以在4.5.0中正常工作,只有一个例外

报告生成成功,但HTML报告显示以下错误
“org.mozilla.javascript.EvaluatorException:正则表达式(#2)后的标志无效”

我对BIRT很陌生,我不明白是什么导致了这个问题。如果有人能帮助我了解这个问题的根本原因,那就太好了

HTML报告文件中显示的堆栈跟踪:

The following items have errors:

OdaDataSet AllFloors:
- invalid flag after regular expression (<inline>#2)

birt.core.JavascriptError ( 1 time(s) )
detail : org.eclipse.birt.report.engine.api.EngineException: invalid flag after regular expression (<inline>#2)
    at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1245)
    at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:164)
    at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:122)
    at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)
    at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.execute(SuppressDuplciateReportExecutor.java:42)
    at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)
    at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportExecutor.execute(LocalizedReportExecutor.java:61)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:179)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
    at com.trapeze.appl.shared.reports.AbstractReportGenerator.generateHTMLReport(AbstractReportGenerator.java:942)
    at com.trapeze.appl.shared.reports.AbstractReportGenerator.generateReport(AbstractReportGenerator.java:838)
    at com.trapeze.appl.shared.reports.ReportService$1.generate(ReportService.java:98)
    at com.trapeze.appl.rm.server.reports.RMReportService.generateReport(RMReportService.java:289)
    at com.trapeze.appl.rm.server.reports.RMReportService.generateClientReport(RMReportService.java:426)
    at com.trapeze.appl.shared.reports.ReportServlet.generateClientSideReportByXML(ReportServlet.java:215)
    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 com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:180)
    at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:109)
    at com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:396)
    at com.trapeze.fw.services.server.HessianServiceServlet.service(HessianServiceServlet.java:93)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
    at org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:677)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
    at org.mortbay.http.HttpServer.service(HttpServer.java:909)
    at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
    at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
    at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
    at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
    at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
    at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
Caused by: org.eclipse.birt.core.exception.CoreException: invalid flag after regular expression (<inline>#2)
    at org.eclipse.birt.core.script.JavascriptEvalUtil.wrapRhinoException(JavascriptEvalUtil.java:307)
    at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateRawScript(JavascriptEvalUtil.java:106)
    at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateScript(JavascriptEvalUtil.java:138)
    at org.eclipse.birt.report.data.adapter.internal.adapter.OdaDataSourceAdapter.<init>(OdaDataSourceAdapter.java:87)
    at org.eclipse.birt.report.data.adapter.impl.ModelAdapter.adaptDataSource(ModelAdapter.java:122)
    at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.createDataSourceDesign(ModelDteApiAdapter.java:188)
    at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.doDefineDataSource(ModelDteApiAdapter.java:246)
    at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.defineDataSet(ModelDteApiAdapter.java:233)
    at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:159)
    ... 33 more
Caused by: org.mozilla.javascript.EvaluatorException: invalid flag after regular expression (<inline>#2)
    at org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:77)
    at org.mozilla.javascript.DefaultErrorReporter.error(DefaultErrorReporter.java:64)
    at org.mozilla.javascript.Parser.addError(Parser.java:188)
    at org.mozilla.javascript.Parser.addError(Parser.java:166)
    at org.mozilla.javascript.Parser.reportError(Parser.java:223)
    at org.mozilla.javascript.Parser.reportError(Parser.java:210)
    at org.mozilla.javascript.Parser.reportError(Parser.java:203)
    at org.mozilla.javascript.TokenStream.readRegExp(TokenStream.java:921)
    at org.mozilla.javascript.Parser.primaryExpr(Parser.java:2798)
    at org.mozilla.javascript.Parser.memberExpr(Parser.java:2406)
    at org.mozilla.javascript.Parser.unaryExpr(Parser.java:2304)
    at org.mozilla.javascript.Parser.mulExpr(Parser.java:2229)
    at org.mozilla.javascript.Parser.addExpr(Parser.java:2213)
    at org.mozilla.javascript.Parser.shiftExpr(Parser.java:2194)
    at org.mozilla.javascript.Parser.relExpr(Parser.java:2169)
    at org.mozilla.javascript.Parser.eqExpr(Parser.java:2141)
    at org.mozilla.javascript.Parser.bitAndExpr(Parser.java:2130)
    at org.mozilla.javascript.Parser.bitXorExpr(Parser.java:2119)
    at org.mozilla.javascript.Parser.bitOrExpr(Parser.java:2108)
    at org.mozilla.javascript.Parser.andExpr(Parser.java:2097)
    at org.mozilla.javascript.Parser.orExpr(Parser.java:2086)
    at org.mozilla.javascript.Parser.condExpr(Parser.java:2062)
    at org.mozilla.javascript.Parser.assignExpr(Parser.java:2033)
    at org.mozilla.javascript.Parser.expr(Parser.java:2012)
    at org.mozilla.javascript.Parser.statementHelper(Parser.java:1039)
    at org.mozilla.javascript.Parser.nameOrLabel(Parser.java:1793)
    at org.mozilla.javascript.Parser.statementHelper(Parser.java:1032)
    at org.mozilla.javascript.Parser.statement(Parser.java:901)
    at org.mozilla.javascript.Parser.statements(Parser.java:856)
    at org.mozilla.javascript.Parser.block(Parser.java:1688)
    at org.mozilla.javascript.Parser.statementHelper(Parser.java:1010)
    at org.mozilla.javascript.Parser.statement(Parser.java:901)
    at org.mozilla.javascript.Parser.ifStatement(Parser.java:1082)
    at org.mozilla.javascript.Parser.statementHelper(Parser.java:947)
    at org.mozilla.javascript.Parser.statement(Parser.java:901)
    at org.mozilla.javascript.Parser.parse(Parser.java:540)
    at org.mozilla.javascript.Parser.parse(Parser.java:478)
    at org.mozilla.javascript.Context.compileImpl(Context.java:2348)
    at org.mozilla.javascript.Context.compileString(Context.java:1335)
    at org.mozilla.javascript.Context.compileString(Context.java:1324)
    at org.eclipse.birt.core.script.JavascriptEvalUtil.getCompiledScript(JavascriptEvalUtil.java:156)
    at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateRawScript(JavascriptEvalUtil.java:95)
    ... 40 more




OdaDataSet AllDevices:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet AllAPs:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet APClosetDistance:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet APClosetDistanceInOneAP:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet APSingnalStrength:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet GraphRssiHeatMap:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet HeatMapLegend:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet AllFloorContourGraph:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet AllAPContourGraph:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet AllRFPoint:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet AllRFPointSS_A:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet AllRFPointSS_B:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet APInventory:
+ invalid flag after regular expression (<inline>#2)

OdaDataSet DeviceInventory:
+ invalid flag after regular expression (<inline>#2)

TabularCube MPCube:
+ invalid flag after regular expression (<inline>#2)

TabularCube MXCube:
+ invalid flag after regular expression (<inline>#2)

List (id = 27425):
+ DataSet "APDistance" is not defined in report. 

ReportDesign (id = 1):
+ An exception occurred during processing. Please see the following message for details:
invalid flag after regular expression (<inline>#2) 
以下项目有错误:
所有楼层:
-正则表达式(#2)后的标志无效
birt.core.JavascriptError(1次)
详细信息:org.eclipse.birt.report.engine.api.EngineeException:正则表达式后面的标志无效(#2)
位于org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1245)
位于org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:164)
位于org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:122)
位于org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)
位于org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.execute(SuppressDuplciateReportExecutor.java:42)
位于org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)
位于org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportExecutor.execute(LocalizedReportExecutor.java:61)
位于org.eclipse.birt.report.engine.api.impl.runandendertask.doRun(runandendertask.java:179)
位于org.eclipse.birt.report.engine.api.impl.runandendertask.run(runandendertask.java:77)
位于com.traffee.appl.shared.reports.AbstractReportGenerator.generateHTMLReport(AbstractReportGenerator.java:942)
位于com.traffee.appl.shared.reports.AbstractReportGenerator.generateReport(AbstractReportGenerator.java:838)
位于com.traffee.appl.shared.reports.ReportService$1.generate(ReportService.java:98)
在com.traffee.appl.rm.server.reports.RMReportService.generateReport(RMReportService.java:289)
位于com.traffee.appl.rm.server.reports.RMReportService.generateClientReport(RMReportService.java:426)
位于com.traffee.appl.shared.reports.ReportServlet.generateClientSideReportByXML(ReportServlet.java:215)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
位于com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:180)
位于com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:109)
位于com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:396)
位于com.traffee.fw.services.server.HessianServiceServlet.service(HessianServiceServlet.java:93)
位于org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
位于org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:677)
位于org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
位于org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
位于org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
位于org.mortbay.http.HttpServer.service(HttpServer.java:909)
位于org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
位于org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
位于org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
位于org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
位于org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
位于org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
原因:org.eclipse.birt.core.exception.coreeexception:正则表达式后面的标志无效(#2)
位于org.eclipse.birt.core.script.JavascriptEvalUtil.wrapRhinoException(JavascriptEvalUtil.java:307)
位于org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateRawScript(JavascriptEvalUtil.java:106)
位于org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateScript(JavascriptEvalUtil.java:138)
位于org.eclipse.birt.report.data.adapter.internal.adapter.ODatasourceAdapter.(ODatasourceAdapter.java:87)
在org.eclipse.birt.report.data.adapter.impl.ModelAdapter.AdapteDataSource(ModelAdapter.java:122)上
位于org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.createDataSourceDesign(ModelDteApiAdapter.java:188)
在org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.doDefineDataSource(ModelDteApiAdapter.java:246)上
位于org.eclipse.birt.report.engine.adapter.modeldteAppiadapter.defineDataSet(modeldteAppiadapter.java:233)
位于org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:159)
... 33多
原因:org.mozilla.javascript.EvaluatorException:正则表达式(#2)后的标志无效
位于org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:77)
位于org.mozilla.javascript.DefaultErrorReporter.error(DefaultErrorReporter.java:64)
位于org.mozilla.javascript.Parser.addError(Parser.java:188)
位于org.mozilla.javascript.Parser.addError(Parser.java:166)
位于org.mozilla.javascript.Parser.reportError(Parser.java:223)
位于org.mozilla.javascript.Parser.reportError(Parser.java:210)
位于org.mozilla.javascript.Parser.reportError(Parser.java:203)
位于org.mozilla.javascript.TokenStream.readRegExp(TokenStream.java:921)
位于org.mozilla.javascript.Parser.primaryExpr(Parser.java:2798)
位于org.mozilla.javascript.Parser.memberExpr(Parser.java:2406)
位于org.mozilla.javascript.Parser.unaryExpr(Parser.jav
    <data-sets>
        <oda-data-set extensionID="org.eclipse.datatools.enablement.oda.xml.dataSet" name="AllFloors" id="1707">
            <structure name="cachedMetaData">
                <list-property name="resultSet">
                    <structure>
                        <property name="position">1</property>
                        <property name="name">id</property>
                        <property name="dataType">string</property>
                        ....
                        ....
                        ....
            <property name="dataSource">reportDataSource</property>
            <list-property name="resultSet">
                <structure>
                    <property name="position">1</property>
                    <property name="name">id</property>
                    <property name="nativeName">id</property>
                    <property name="dataType">string</property>
                    <property name="nativeDataType">12</property>
                </structure>
                ....
                ....
            <xml-property name="queryText"><![CDATA[table0#-TNAME-#table0#:#[//FLOOR]#:#{id;STRING;@id}, .... ]]></xml-property>
            <xml-property name="designerValues"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<model:DesignValues xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design" xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
  <Version>1.0</Version>
  <design:ResultSets derivedMetaData="true">
    <design:resultSetDefinitions>
      <design:resultSetColumns>
        <design:resultColumnDefinitions>
          <design:attributes>
            <design:name>id</design:name>
            <design:position>1</design:position>
            <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
            <design:precision>-1</design:precision>
            <design:scale>-1</design:scale>
            <design:nullability>Unknown</design:nullability>
          </design:attributes>
          <design:usageHints>
            <design:label>id</design:label>
            <design:formattingHints/>
          </design:usageHints>
        </design:resultColumnDefinitions>
        ....
      </design:resultSetColumns>
    </design:resultSetDefinitions>
  </design:ResultSets>
</model:DesignValues>]]></xml-property>
            <list-property name="privateDriverProperties">
                <ex-property>
                    <name>MAX_ROW</name>
                    <value>-1</value>
                </ex-property>
                <ex-property>
                    <name>XML_FILE</name>
                </ex-property>
            </list-property>
<expression name="value">var servlet=reportContext.getHttpServletRequest();&#13;
    if(servlet != null &amp;&amp; servlet.getAttribute("attributeBean").isDesigner()   ){&#13;
        config[ "birt.viewer.working.path" ] + "/../../../path/to/sample/xml/data/file.xml";&#13;
    }</expression>