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

目录:

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-8-sdk-overlay-win-x64.zip

                                                                                                                                                openjfx-8u60-sdk-overlay-linux-amd64.zip

                                                                                                                                                openjfx-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,查看之前报错的仪表板,显示正常即可。