You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JasperReport本地运行告警、GlassFish部署报JRStyledTextParser错误如何解决?

告警问题:unchecked method invocation 修复

该告警是泛型类型不匹配导致的:fillReport 方法要求入参为 Map<String,Object> 类型,你代码中传入的是无泛型约束的原始 Map 类型,触发了编译期 unchecked 告警。
修复方案二选一即可:

  • 修改方法入参的泛型声明,将方法定义改为:
public void runReport(String repPath, java.util.Map<String, Object> param) throws Exception
  • 若入参类型无法修改,在调用fillReport的代码行上方添加压制告警注解:
@SuppressWarnings("unchecked")
JasperPrint print = JasperFillManager.fillReport(template, param, conn);
运行错误:java.lang.NoClassDefFoundError 修复

该错误是 JRStyledTextParser 类初始化失败导致的,常见于非桌面环境的应用服务器,按以下步骤排查修复:

  • 开启GlassFish的AWT无头模式:打开GlassFish对应domain的JVM启动参数配置,添加启动参数 -Djava.awt.headless=true,重启服务生效。
  • 调整类加载优先级:在应用的WEB-INF/glassfish-web.xml配置文件中添加 <class-loader delegate="false"/>,让应用优先加载自身WEB-INF/lib下的依赖包,避免和GlassFish自带的相关依赖版本冲突。
  • 补全依赖包:确认应用WEB-INF/lib目录下包含JasperReport 5.6.0所需的全部依赖:itext、commons-collections、commons-logging、commons-digester、commons-beanutils、xml-apis,缺失的包补充完整后重新部署。
  • 安装系统字体:Linux环境下若缺少基础字体包也会导致该类初始化失败,安装对应系统的字体包(如CentOS下执行yum install fontconfig urw-fonts)后重启GlassFish即可。

内容的提问来源于stack exchange,提问作者Mohamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:15:03