Jasper 报告无法在没有 X11 的 Linux 服务器上运行:“初始化图形环境时出错。”

我有一个大问题。我正在编写一个使用 Jasperreports 的应用程序。当我在本地工作时,一切都很好。但是,当我对我的应用程序进行 docker 化时,当我运行应该生成 PDF 文件的方法时,我收到一个错误:

Request processing failed; nested exception is net.sf.jasperreports.engine.JRRuntimeException: Error initializing graphic environment.

我发现运行我的应用程序

-DJava.awt.headless=true

问题会自行解决。但事实并非如此。

这是它在中的样子Dockerfile

ENTRYPOINT [ "java", "-Djava.awt.headless=true", "-jar", "/var/generator/generator-0.0.1-SNAPSHOT.jar" ]

为了确保我没有忘记任何东西,这里是生成 PDF 文件的方法的代码,也许那里有问题......

错误来自这一行:

mainReport = JasperFillManager.fillReport(report, invoiceMap, new JREmptyDataSource());


www说
浏览 259回答 2
2回答

POPMUISE

这看起来像是缺少字体的问题。如果您碰巧使用的是 Alpine,那么您可能会看到问题 #73,它具有相同的相关堆栈跟踪。根据该问题,安装ttf-dejavu软件包应该可以解决您的问题。将此添加到您的 dockerfile:RUN apk add ttf-dejavu

慕运维8079593

我可以通过安装 fontconfig 和 urw-fonts 包来解决这个问题。yum install fontconfig yum install urw-fonts见github问题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java