简体   繁体   English

Applet加载错误-碧玉报告

[英]Applet Loading Error - Jasper Report

I have encountered an error with my applet that I can not figure out solution. 我的小程序遇到错误,无法解决。 I am loading my java applet which encompass a simple jasper viewer in it. 我正在加载包含一个简单的jasper查看器的java applet。 When the applet is loaded it throws following exception: 加载小程序时,将引发以下异常:

SEVERE: Servlet.service() for servlet JasperReportServlet threw exception
java.lang.ClassNotFoundException: org.apache.commons.collections.ReferenceMap
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.<init>(DefaultExtensionsRegistry.java:96)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:59)
    at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:80)
    at net.sf.jasperreports.extensions.ExtensionsEnvironment.<clinit>(ExtensionsEnvironment.java:68)
    at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:76)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:182)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:77)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:87)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:57)
    at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:78)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
    at com.dbhl.app.report.generator.JobUpdateGenerator.getJasperPrintObject(JobUpdateGenerator.java:279)
    at com.dbhl.app.report.JasperReportServlet.processJobUpdate(JasperReportServlet.java:153)
    at com.dbhl.app.report.JasperReportServlet.getJasperPrintObjectByLedgerType(JasperReportServlet.java:79)
    at com.dbhl.app.report.JasperReportServlet.service(JasperReportServlet.java:50)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    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:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    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:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)

Below is my applet configuration and I am loading applet using standard java deployment toolkit. 以下是我的applet配置,我正在使用标准Java部署工具包加载applet。

<script type="text/javascript" src="<%=basePath%>js/deployJava.js">
</script>

<script>
  var user = '<%=request.getParameter("user")%>';

  var attributes = {
    code : 'applet.EmbeddedViewerApplet.class',
    archive : '<%=basePath%>resources/appletviewer.jar,<%=basePath%>resources/jasperreports-applet-4.0.0.jar,<%=basePath%>resources/jasperreports-4.0.0.jar,<%=basePath%>resources/commons-collections-3.2.1.jar,<%=basePath%>resources/commons-logging-1.0.4.jar,<%=basePath%>resources/commons-beanutils-1.8.0.jar,<%=basePath%>resources/commons-digester-1.7.jar,<%=basePath%>resources/commons-javaflow-20060411.jar,<%=basePath%>resources/org-netbeans-core.jar',
    width : "100%",
    height : 600
  };

  var parameters = {
    fontSize : 16,
    REPORT_URL : '<%=basePath%>servlet/JasperReportServlet?startDate=<%=request.getParameter("startDate")%>&endDate=<%=request.getParameter("endDate")%>&user=' + user + '&reportType=<%=request.getParameter("reportType")%>'
  };

  var version = '1.4';
  deployJava.runApplet(attributes, parameters, version);
</script>

All the jars I need in the applet exist in the resource folder of my webroot, which are 我在applet中需要的所有jar都存在于我的webroot的资源文件夹中,它们是

  • appletviewer.jar appletviewer.jar
  • commons-beanutils-1.8.0.jar commons-beanutils-1.8.0.jar
  • commons-collections-3.2.1.jar commons-collections-3.2.1.jar
  • commons-digester-1.7.jar commons-digester-1.7.jar
  • commons-javaflow-20060411.jar commons-javaflow-20060411.jar
  • commons-logging-1.0.4.jar commons-logging-1.0.4.jar
  • jasperreports-4.0.0.jar jasperreports-4.0.0.jar
  • jasperreports-applet-4.0.0.jar jasperreports-applet-4.0.0.jar
  • org-netbeans-core.jar org-netbeans-core.jar

All the jars are signed today, so no validity expires. 今天所有罐子都已签名,因此有效期不会到期。 I have double checked everything, but it always shows the above error. 我已经仔细检查了所有内容,但始终显示上述错误。 In iReport I can view the report and it is compiled to jasper object with no error. 在iReport中,我可以查看报告并将其编译为jasper对象,没有错误。

The java console from control panel 控制面板中的Java控制台

I checked in the temp cache that the collections file is downloaded successfully and in the above console log it shows that the jars are successfully downloaded to the host computer. 我检查了临时缓存,确认收集文件已成功下载,并且在上述控制台日志中,它显示了jar已成功下载到主机。 Why is the ClassNotFoundException happening? 为什么会发生ClassNotFoundException

错误来自服务器端,我在跟踪控制台日志后才知道,在我的服务器类路径comons-collections中丢失了,我添加了它,并且一切运行正常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM