FineReport预览报错java.lang.NullPointerException

LINUX服务器部署后预览报表,就报错,页面没有任何数据库连接,就敲了几个数字。

java.lang.NullPointerException

at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)

at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)

at sun.awt.FontConfiguration.init(FontConfiguration.java:107)

at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)

at sun.font.SunFontManager$2.run(SunFontManager.java:431)

at java.security.AccessController.doPrivileged(Native Method)

at sun.font.SunFontManager.

at sun.awt.FcFontManager.

at sun.awt.X11FontManager.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at java.lang.Class.newInstance(Class.java:442)

at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)

at java.security.AccessController.doPrivileged(Native Method)

at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)

at sun.font.SunFontManager.getInstance(SunFontManager.java:250)

at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:264)

at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:250)

at sun.awt.SunToolkit.getFontMetrics(SunToolkit.java:652)

at sun.awt.HeadlessToolkit.getFontMetrics(HeadlessToolkit.java:413)

at com.fr.stable.GraphDrawHelper.createNotNullFontMetrics(Unknown Source)

at com.fr.stable.GraphDrawHelper.createFontMetrics(Unknown Source)

at com.fr.stable.GraphDrawHelper.getFontMetrics(Unknown Source)

at com.fr.base.GraphHelper.getFontMetrics(Unknown Source)

at com.fr.report.core.PaintUtils.getFontMetrics(Unknown Source)

at com.fr.report.core.PaintUtils.dealWrapTextCount(Unknown Source)

at com.fr.report.core.PaintUtils.getLineTextCount(Unknown Source)

at com.fr.report.core.PaintUtils.analyzeCellElementPreferredHeight(Unknown Source)

at com.fr.report.core.PaintUtils.analyzeCellElementPreferredHeight(Unknown Source)

at com.fr.report.elementcase.AbstractElementCase.shrinkTOFitRowHeightForCellElement(Unknown Source)

at com.fr.report.report.AbstractECReport.shrinkTOFitRowHeightForCellElement(Unknown Source)

at com.fr.report.report.AbstractECReport.prepare2ShrinkRealWidthOrHeight4Cell(Unknown Source)

at com.fr.report.core.A.J$_A.B(Unknown Source)

at com.fr.report.core.A.J$_A.B(Unknown Source)

at com.fr.report.core.A.J$_A.B(Unknown Source)

at com.fr.report.core.A.J$_A.B(Unknown Source)

at com.fr.report.core.A.J$_A.B(Unknown Source)

at com.fr.report.core.A.J.execute4ECReport(Unknown Source)

at com.fr.report.core.A.J.execute(Unknown Source)

at com.fr.report.worksheet.WorkSheet.execute(Unknown Source)

at com.fr.report.core.sheet.AbstractWorkBookExecutor._execute(Unknown Source)

at com.fr.report.core.sheet.AbstractWorkBookExecutor.execute(Unknown Source)

at com.fr.main.impl.WorkBook.execute(Unknown Source)

at com.fr.main.impl.WorkBook.execute(Unknown Source)

at com.fr.web.cache.ReportCache.getResultWorkBook(Unknown Source)

at com.fr.stable.PageActor.getResultBookFromCacheIfNeed(Unknown Source)

at com.fr.main.impl.WorkBookTemplateDelegate.execute(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.execute(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.computeBook2Show$original$nbA5qjhu(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.computeBook2Show$original$nbA5qjhu$accessor$NcKCaliW(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor$auxiliary$bOBzMLqe.call(Unknown Source)

at com.fr.intelli.metrics.MonitorInterceptor.intercept(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.computeBook2Show(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.initBook2Show(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.getWorkBook2Show(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.getWorkBook2Show(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.getResultWorkBook(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.createPageSetChain(Unknown Source)

at com.fr.web.core.ReportSessionIDInfor.getReportPage(Unknown Source)

at com.fr.web.core.B.qA.A(Unknown Source)

at com.fr.web.core.B.qA.A(Unknown Source)

at com.fr.web.core.B.kA.A(Unknown Source)

at com.fr.web.core.B.KA.actionCMD(Unknown Source)

at com.fr.web.core.WebActionsDispatcher.dealForActionCMD(Unknown Source)

at com.fr.web.core.WebActionsDispatcher.dealForActionDefaultCmd(Unknown Source)

at com.fr.web.core.B.hA.process(Unknown Source)

at com.fr.web.core.ReportDispatcher.dealWithOp(Unknown Source)

at com.fr.web.core.ReportDispatcher.dealWeblet(Unknown Source)

at com.fr.web.core.ReportDispatcher.dealWithRequest(Unknown Source)

at com.fr.web.controller.BaseRequestService.preview(Unknown Source)

at com.fr.web.controller.ReportRequestService.preview(Unknown Source)

at sun.reflect.GeneratedMethodAccessor171.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at com.fr.third.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)

at com.fr.third.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)

at com.fr.third.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)

at com.fr.third.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:747)

at com.fr.third.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:676)

at com.fr.third.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)

at com.fr.third.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)

at com.fr.third.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)

at com.fr.third.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)

at com.fr.third.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)

at com.fr.third.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at com.fr.third.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

at com.fr.third.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at com.fr.decision.base.DecisionServletInitializer$4.doFilter(Unknown Source)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:748)


FineReport gonglingmeng 发布于 2020-1-20 17:05 (编辑于 2020-1-20 17:12)
1min目标场景问卷 立即参与
回答问题
悬赏:8 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
3
zsh331Lv8专家互助
发布于2020-1-20 18:04(编辑于 2020-11-20 17:59)

当前linux系统没有相关font资源,需要为系统安装【字体管理器】-FontConfiguration组件;

=======================

操作方法:centos系统  yum install fontconfig ;debian系统 apt-get install fontconfig

==========

image.png



  • gonglingmeng gonglingmeng(提问者) 试了,没用,我是在LINUX服务器部署后什么都没弄,直接登录后访问就报这个错。
    2020-01-20 18:07 
  • zsh331 zsh331 回复 gonglingmeng(提问者) 更新了;
    2020-11-20 17:59 
最佳回答
1
无名_Lv6见习互助
发布于2020-1-20 23:10

从报错信息上来看,应该是你使用了openjdk 缺少FontConfiguration组件造成的,要不重新安装jdk,要不安装组件

centos系统使用  yum install fontconfig

debian系统使用 apt-get install fontconfig

最佳回答
0
KerydiaLv5中级互助
发布于2020-1-20 20:56

重启服务器试一下

最佳回答
0
kjp123Lv5见习互助
发布于2020-1-21 08:53(编辑于 2020-1-21 15:48)

1. 报错信息


情形 1

在 Java 中,空指针错误是最常见的问题,报错如下:

空指针问题是代码的问题,在 Java 中对值为 null 的指针调用任何方法,就会引发空指针异常 (java.lang.NullPointerException

情形 2

在第三方工具中执行 SQL 语句查询,可以查询到数据

但是在报表查询的时候查询不到数据或者在设计变量的时候,会报错空指针异常

这个是因为在报表定义数据库连接的时候没有指定字符集造成的。所以如果是数据库在定义的时候需要添加字符集参数

"?useUnicode=true&characterEncoding=UTF-8"如下图,添加后报表也可以显示出数据了。一切正常了。


2. 空指针异常的原因

在 Java 中,一般报空指针异常的原因有以下几种:

  • 字符串变量未初始化;

  • 接口类型的对象没有用具体的类初始化;

  • 大多数的空指针异常主要与对象的操作相关。如果只是声明了某个类型的对象并没有创建对象,在堆里面没有地址引用,所有要用对象调用方法的时候一定要创建对象。

3. 解决方案

若访问报表时,遇到空指针问题该怎么办?


若您在使用过程中(如:访问报表等),遇到上述空指针错误。请将您使用的jar包、出错模板、及完整的错误信息发给 FineReport 技术人员。我们技术人员会在本地使用您的 JAR 包与模板看是否可以重现,并确认问题是否可以解决。


  • 5关注人数
  • 1752浏览人数
  • 最后回答于:2020-11-20 17:59
    请选择关闭问题的原因
    确定 取消
    返回顶部