【发布时间】:2018-08-06 06:52:30
【问题描述】:
在我的本地 jBoss 机器上,生成 PDF 工作正常。但是,当我尝试发布(到目前为止似乎如此)时,NetWeaver 上的任何内容基本上都部署了相同的应用程序代码,生成崩溃并出现此错误:
08-06-18:00:46:45 [HTTP Worker [@802492534]] ERROR [JRStyledTextParser:paveljanicek] Error while loading available fonts
net.sf.jasperreports.engine.JRRuntimeException: javax.xml.parsers.ParserConfigurationException
at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.<init>(SimpleFontExtensionHelper.java:156)
at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.getInstance(SimpleFontExtensionHelper.java:131)
at net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.ensureFontExtensions(FontExtensionsRegistry.java:80)
at net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.getExtensions(FontExtensionsRegistry.java:57)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:130)
at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:86)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:111)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:69)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:57)
at net.sf.jasperreports.engine.fill.JRFiller.createBandReportFiller(JRFiller.java:219)
at net.sf.jasperreports.engine.fill.JRFiller.createReportFiller(JRFiller.java:234)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:134)
最糟糕的是,我想不出如何重现这个错误。这是我已经在目标机器上检查过的:
- 字体已安装并可供应用访问
- jasper 报告可以访问 jasperreports-fonts.jar
在我的本地机器上:
- PDF 生成时会出现警告(我使用的是 issplitAllowed 或边框等旧属性)
- 如果字体被删除,本地实例崩溃并出现不同的错误(主要是“字体对 JVM 不可用”)
有谁知道要检查什么,在哪里看?
【问题讨论】:
-
该错误可能是由于 NetWeaver 环境中使用的 SAX 解析器不知道 apache.org/xml/features/disallow-doctype-decl 功能(由 JasperReports 设置)引起的。我对 NetWeaver 一无所知,但请尝试在您的应用程序中包含一个 Xerces (2) jar。
-
看起来,它是由 NW 引起的。 NW内部有补丁,所以我们将尝试在晚上升级目标机器。会让你知道结果