最新历史版本 :图表大数据预览/导出报错 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel编辑

问题现象:

预览或者导出大数据图表时,仪表板页面显示无法访问,报错如下:

Handler processing failed, nested exception is java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel

报错截图:

222

查看后台日志(Web服务器对应日志,例如%tomcat%/logs/catalina.log),可以看到如下详细日志报错:                         222

原因分析:

FineBI5.1的很多功能都使用到了javafx,而一些openjdk中是不带openjfx的。如果在这种openjdk下使用web容器部署FineBI5.1的话,图表的大数据功能、导出功能会受到影响无法使用,就会出现上述javafx相关报错。

解决方案:

为不带openjfx的openjdk添加该openjfx功能,下面我们以windows下的redhat openjdk为例,介绍下如何让openjdk具有openjfx功能的操作步骤,操作前需要先关闭FineBI。

示例:

1)redhat openjdk是一种常见的openjdk,但是它并没有包含openjfx。在此页面下载redhat openjdk,安装完成并配置好环境变量。

2)下载openjfx,此处直接提供windows、linux、macos三种系统使用的 openjfx 以供下载:

系统
openjfx
windowsopenjfx-8-sdk-overlay-win-x64.zip
linuxopenjfx-8u60-sdk-overlay-linux-amd64.zip
macosopenjfx-8u60-sdk-overlay-osx-x64.zip

3)解压下载的openjfx文件,Windows系统下的目录结构如下所示:

222

4)将openjfx解压后各个目录的文件,分别拷贝至openjdk安装完之后的目录。比如 bin 目录下的文件为javafxpackager.exe和javapackager.exe,如下图:

222

将其拷贝至openjdk安装目录bin下,如下图:

222

5)同样将jre和lib目录下的文件均拷贝至openjdk对应目录即可。操作完成之后,这个openjdk就是包含openjfx的了,至此,让openjdk具有openjfx功能的操作即完成。

6)启动FineBI,查看之前报错的仪表板,显示正常即可。