我写了一个a.jasper文件,在IReport中通过JDBC直接连接可以出来数据.但是放到项目中就出现NullPointException。如下:
java.lang.NullPointerException
at net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:88)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:64)
at com.newheight.webapp.action.report.ReportAction.generateReport(ReportAction.java:145)
at com.newheight.webapp.action.report.ReportAction.exportHtml(ReportAction.java:118)
at com.newheight.webapp.action.report.ReportAction$$FastClassByCGLIB$$5d99d159.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
at com.newheight.aop.BackendAccessLogAspect.securityAccess(BackendAccessLogAspect.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:160)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
at com.newheight.aop.ActionAccessAspect.securityAccess(ActionAccessAspect.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:160)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
at com.newheight.aop.ExceptionHandlerAspect.exceptionHandler(ExceptionHandlerAspect.java:52)
at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at com.newheight.webapp.action.report.ReportAction$$EnhancerByCGLIB$$bcfe711c.exportHtml(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)

解决方案 »

  1.   

    在这行com.newheight.webapp.action.report.ReportAction.generateReport(ReportAction.java:145) 设个断点  看看是那个报null了,这样问题就容易找到
      

  2.   

    现在出现如下问题:net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : 
    Source text : $F{sold_date}
    at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:197)
    at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:537)
    at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:505)
    at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:826)
    at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:368)
    at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:353)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:275)
    at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:426)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1380)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:692)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:879)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:801)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
    at com.newheight.webapp.action.report.ReportAction.generateReport(ReportAction.java:166)
    at com.newheight.webapp.action.report.ReportAction.exportHtml(ReportAction.java:118)
    at com.newheight.webapp.action.report.ReportAction$$FastClassByCGLIB$$5d99d159.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
    at com.newheight.aop.BackendAccessLogAspect.securityAccess(BackendAccessLogAspect.java:56)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
    at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:160)
    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
    at com.newheight.aop.ActionAccessAspect.securityAccess(ActionAccessAspect.java:70)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
    at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:160)
    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
    at com.newheight.aop.ExceptionHandlerAspect.exceptionHandler(ExceptionHandlerAspect.java:52)
    at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
    at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
    at com.newheight.webapp.action.report.ReportAction$$EnhancerByCGLIB$$7e4dd3f.exportHtml(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
    at com.newheight.webapp.interceptor.BackendLoginInterceptor.intercept(BackendLoginInterceptor.java:24)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    ...
    Caused by: java.lang.ClassCastException: java.util.Date
    at ProductSaleDetail_1235116557112_125553.evaluate(ProductSaleDetail_1235116557112_125553:216)
    at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:186)
    ... 181 more
    net.sf.jasperreports.engine.JRException: No input source supplied to the exporter.
    at net.sf.jasperreports.engine.JRAbstractExporter.setInput(JRAbstractExporter.java:605)
    at net.sf.jasperreports.engine.export.JRHtmlExporter.exportReport(JRHtmlExporter.java:216)
    at com.newheight.webapp.action.report.ReportAction.htmlReport(ReportAction.java:227)
    at com.newheight.webapp.action.report.ReportAction.exportHtml(ReportAction.java:119)
    at com.newheight.webapp.action.report.ReportAction$$FastClassByCGLIB$$5d99d159.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
      

  3.   

    java.lang.ClassCastException: java.util.Date 
    类型转换不对,该是在你这行代码出了问题吧com.newheight.webapp.action.report.ReportAction.generateReport(ReportAction.java:166) 
      

  4.   

    我当然知道是类型转换不对,这个JASPER文件是以前一个已经跳槽的同事生成的,他用的版本比较低,具体版本号不知道,我用的是3.0.0版本的.我在这个文件里追加了一个field,根本没有动他原来的东西,这个日期是以前就存在的,编译后直接用JDBC连接是可以出来数据的.放在项目里运行.就出错.java部分的代码我只是在VO里追加了这个field的getter和setter然后修改了SQL语句多检索一个field而已.是不是两个版本的问题。
      

  5.   

    刚开始出现的空指针错误,是我用以前的JASPER的LIB,然后我把3.0的JAR替换老的JAR之后,就出现转型错误.
      

  6.   

    日期类型请注意java.sql.Date ....java.util.Date 
      

  7.   

    谢谢大家!问题找到了:原因是我在写SQL语句时,自动从数据库检索类型,
    所以有一个字段为:java.util.Timestamp类型。
    我存储结果的ENTITY中该字段的类型为:java.util.Date。
    将java.util.Timestamp类型改为:java.util.Date就可以了。
      

  8.   

    救命啊!
    我也遇到jasper出现NullPointException了
    在ireport工具中是好的.就是不能在java中用.这个项目以前是别人做的,里边有一些jasper文件可以用.但是换上我现在写jasper文件的就不行啊.
    java.lang.NullPointerException
    net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)
    sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:585)
    java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
    net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:88)
    net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:258)
    net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:226)
    com.bean.analyse.GenerateFile.generatePDF(GenerateFile.java:68)
    com.login.servlet.MyCreateServlet.doPost(MyCreateServlet.java:239)
    com.login.servlet.MyCreateServlet.doGet(MyCreateServlet.java:20)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    com.login.servlet.MyCreateServlet.service(MyCreateServlet.java:291)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)