Javascript 无法编译JasperReports的webapp示例

Javascript 无法编译JasperReports的webapp示例,javascript,jsp,jasper-reports,Javascript,Jsp,Jasper Reports,这是我第一次在官方发行版中运行JasperReports的webapp示例。 我将jar放在\dist和\lib中,并将webapp示例的整个dir部署到tomcat中。 但是,当我尝试使用默认页面编译WebappReport.jrxml时,我看到一个error.jsp,它向我显示以下提示: JasperReports遇到此错误: net.sf.jasperreports.engine.JRException: Errors were encountered when compiling rep

这是我第一次在官方发行版中运行JasperReports的webapp示例。 我将jar放在\dist和\lib中,并将webapp示例的整个dir部署到tomcat中。 但是,当我尝试使用默认页面编译WebappReport.jrxml时,我看到一个error.jsp,它向我显示以下提示:

JasperReports遇到此错误:

net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
1. scriptlets.WebappScriptlet cannot be resolved to a type
                value = ((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)parameter_REPORT_SCRIPTLET.getValue())).hello(); //$JR_EXPR_ID=23$
                          <------------------------>
2. scriptlets.WebappScriptlet cannot be resolved to a type
                value = ((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)parameter_REPORT_SCRIPTLET.getValue())).hello(); //$JR_EXPR_ID=23$
                                                       <------------------------>
3. scriptlets.WebappScriptlet cannot be resolved to a type
                value = ((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)parameter_REPORT_SCRIPTLET.getValue())).hello(); //$JR_EXPR_ID=23$
                          <------------------------>
4. scriptlets.WebappScriptlet cannot be resolved to a type
                value = ((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)parameter_REPORT_SCRIPTLET.getValue())).hello(); //$JR_EXPR_ID=23$
                                                       <------------------------>
5. scriptlets.WebappScriptlet cannot be resolved to a type
                value = ((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)parameter_REPORT_SCRIPTLET.getValue())).hello(); //$JR_EXPR_ID=23$
                          <------------------------>
6. scriptlets.WebappScriptlet cannot be resolved to a type
                value = ((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)parameter_REPORT_SCRIPTLET.getValue())).hello(); //$JR_EXPR_ID=23$
                                                       <------------------------>
6 errors

at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:191)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:212)
at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:128)
at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:87)
at org.apache.jsp.jsp.compile_jsp._jspService(compile_jsp.java:61)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:619)
net.sf.jasperreports.engine.jr异常:编译报表表达式类文件时遇到错误:
1.Scriptlet.WebappScriptlet无法解析为类型
value=((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)参数_REPORT_SCRIPTLET.getValue()).hello()//$JR_EXPR_ID=23$
2.Scriptlet.WebappScriptlet无法解析为类型
value=((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)参数_REPORT_SCRIPTLET.getValue()).hello()//$JR_EXPR_ID=23$
3.Scriptlet.WebappScriptlet无法解析为类型
value=((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)参数_REPORT_SCRIPTLET.getValue()).hello()//$JR_EXPR_ID=23$
4.Scriptlet.WebappScriptlet无法解析为类型
value=((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)参数_REPORT_SCRIPTLET.getValue()).hello()//$JR_EXPR_ID=23$
5.Scriptlet.WebappScriptlet无法解析为类型
value=((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)参数_REPORT_SCRIPTLET.getValue()).hello()//$JR_EXPR_ID=23$
6.Scriptlet.WebappScriptlet无法解析为类型
value=((scriptlets.WebappScriptlet)((scriptlets.WebappScriptlet)参数_REPORT_SCRIPTLET.getValue()).hello()//$JR_EXPR_ID=23$
6个错误
位于net.sf.jasperreports.engine.design.jractcompiler.compileReport(jractcompiler.java:191)
在net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:212)
位于net.sf.jasperreports.engine.JasperCompileManager.compilereportofile(JasperCompileManager.java:128)
位于net.sf.jasperreports.engine.JasperCompileManager.compilereportofile(JasperCompileManager.java:87)
在org.apache.jsp.jsp.compile\u jsp.\u jsp服务(compile\u jsp.java:61)
位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
位于org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
位于org.apache.coyote.http11.http11aprotocol$Http11ConnectionHandler.process(http11aprotocol.java:594)
位于org.apache.tomcat.util.net.aprendop$Worker.run(aprendop.java:1675)
运行(Thread.java:619)
这是由于一个bug(在我们的JasperServer中)造成的,JDT编译器正在编译从缓存加载的报告,但在类路径上缺少scriptlet。在最初运行报表时不会发生这种情况,因为在这种情况下,JDT计算器(而不是编译器)与类路径上的scriptlet一起使用。换言之:

  • 报告使用JDT计算器运行,scriptlet被添加到类路径
  • 报表从缓存中加载,并使用JDT编译器编译,在类路径上没有scriptlet(因为JDT编译器与包含它的应用程序共享它的类路径,而evaluator有自己的类路径)

  • 快速修复方法是将scriptlet添加到包含该脚本的应用程序的类路径中。

    您是否尝试在iReport中编译此报告?是的,但wgen我尝试了agian,我修复了它最后一条注释是否表示问题已解决?您可以写下如何让其他人知道并避免这种情况吗?:)