历史版本7 :图表导出升级说明 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本介绍

报表服务器版本JAR 包版本
10.0
2020-04-26

1.2 问题描述

2020-04-26 及之后版本的 JAR 包,取消了使用 phantomjs 方案导出图表,改用新方案导出。

FineReport 使用导出、定时调度、设计器内图表展示功能时。若报表部署在 Linux 环境下,且 JDK 版本在 1.8 以下,则需要加载 J2V8 的 libj2v8_linux_x86_64.so,依赖相应版本的 GCC ,如果 GCC 版本过低,则会存在以下问题:

1)导出图表时,模板报错:

java.lang.NullPointerException at com.fr.plugin.chart.vanchart.export.PainterDispatcher$PainterInfo.checkState(Unknown Source)

2)定时调度时,系统消息提示运行失败,日志中报错:

sun.org.mozilla.javascript.EcmaError: ReferenceError: "Java" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1javax.script.ScriptException: sun.org.mozilla.javascript.EcmaError: ReferenceError: "Java" is not defined.

那么如何实现在 JDK1.8 以下且不含有 J2V8 的环境中可以正常使用图表导出和定时调度功能呢?

1.3 解决思路

升级 Linux 系统中的 GCC 版本,在图表绘制时使用 J2V8 作为 JS 运行环境。

2. 操作步骤编辑

2.1 判断是否需要升级

在升级前需要先确认当前系统中的 GCC 版本,使用如下命令,分别查看系统是否存在GLIBC_2.18GLIBCXX_3.4.22 

查看系统是否存在GLIBC_2.18

strings /lib64/libc.so.6 | grep GLIBC

查看系统是否存在GLIBCXX_3.4.22

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

若查看系统没有对应 GCC 版本,则可按需考虑是否升级。

2.2 升级步骤

点击下载升级工具:升级工具.zip,解压升级工具,拷贝至非 usr 的任意目录下,cd 进入该目录,执行如下命令:

chmod 755 glibcxx_3.4.22.sh
chmod 755 glibc_2.18.sh
./glibcxx_3.4.22.sh
./glibc_2.18.s

此处chmod为脚本增加执行权限,./为执行获取的脚本。

执行命令后,系统即自动升级 GCC 的版本。

3. 注意事项编辑

3.1 升级风险

1)GLIBC

GLIBC 是 C 运行库,是 Linux 系统中最底层的 API ( 包括 Linux 的各种命令都依赖于此库 ),如果系统内有其他重要项目,请谨慎升级。( 对应的升级文件为 glibc_2.18.sh )

2)GLIBCXX

GLIBCXX 是 C++ 运行库,升级一般不会产生太大的影响,并且如果升级之后出现了问题,可以对版本进行回退。( 对应的升级文件为 glibcxx_3.4.22.sh )