【发布时间】:2009-10-20 21:30:58
【问题描述】:
我继承了一个应用程序并尝试将 jasperreports v. 0.6.5 升级到 v. 3.5.3 或 v. 3.6.0。这是一个在 Linux 上运行的 Tomcat 5.5.23 容器上提供的 J2EE 应用程序。应用程序 .war 文件是使用 Maven 编译的。
这是我迄今为止尝试过的:
在使用 iReport 的 Windows XP 计算机上重新编译了所有 .jrxml 文件,该计算机使用了以前版本的 jasperreports(1.2.1 到 3.6.0)。
使用 iReport 在另一台从未使用过以前版本的 jasperreports 的 Windows XP 机器上重新编译所有 .jrxml 文件。
在从未使用 iReport 使用过以前版本的 jasperreports 的 Linux 机器上重新编译所有 .jrxml 文件。
清除了 $TOMCAT_HOME/webapp 目录的内容。 经过我的多次尝试,报告将无法在应用程序内部运行,并且在日志文件中产生以下错误:
将测试机器上的 java 版本更新为用于构建应用程序 .war 文件的确切 java 版本。
我还能尝试什么?
这是堆栈:
java.io.InvalidClassException: net.sf.jasperreports.engine.base.JRBaseReport;本地类不兼容:流 classdesc serialVersionUID = 10200,本地类 serialVersionUID = 605 在 java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:546) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699) 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) 在 java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) 在 net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:86) 在 net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:162) 在 tahc.hris.webapp.action.GenerateReport.execute(GenerateReport.java:127) 在 org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) 在 org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) 在 org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 在 org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 在 tahc.hris.webapp.filter.ActionFilter.doFilter(ActionFilter.java:91) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) 在 org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) 在 org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) 在 org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) 在 org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) 在 org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) 在 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) 在 java.lang.Thread.run(Thread.java:595) 嵌套: java.io.InvalidClassException:net.sf.jasperreports.engine.base.JRBaseReport;本地类不兼容:流 classdesc serialVersionUID = 10200,本地类 serialVersionUID = 605 在 java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:546) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699) 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) 在 java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) 在 net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:86) 在 net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:162) 在 tahc.hris.webapp.action.GenerateReport.execute(GenerateReport.java:127) 在 org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) 在 org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) 在 org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 在 org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 在 tahc.hris.webapp.filter.ActionFilter.doFilter(ActionFilter.java:91) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) 在 org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) 在 org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) 在 org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) 在 org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) 在 org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) 在 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) 在 java.lang.Thread.run(Thread.java:595) 嵌套: net.sf.jasperreports.engine.JRException:从文件加载对象时出错:/usr/local/tomcat5/webapps/.../.jasper 在 net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:90) 在 net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:162) 在 tahc.hris.webapp.action.GenerateReport.execute(GenerateReport.java:127) 在 org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) 在 org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) 在 org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 在 org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 在 tahc.hris.webapp.filter.ActionFilter.doFilter(ActionFilter.java:91) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) 在 org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) 在 org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) 在 org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) 在 org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) 在 org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) 在 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) 在 java.lang.Thread.run(Thread.java:595) 引起:java.io.InvalidClassException:net.sf.jasperreports.engine.base.JRBaseReport;本地类不兼容:流 classdesc serialVersionUID = 10200,本地类 serialVersionUID = 605 在 java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:546) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699) 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) 在 java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) 在 net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:86) ... 还有 27 个*
【问题讨论】:
标签: jasper-reports