因业务数据需通过 HTTP 请求访问获取,初期计划采用数据集工厂方案,但受限于公司经费,最终确定通过程序数据集实现该需求。以下为完整实现流程、问题记录及解决方案,供同类场景参考。
- 导入依赖包:按官方文档要求,在 Java 工程中导入
%FR_HOME%/lib 、%FR_HOME%/server/lib 、%FR_HOME%/webapps/webroot/WEB-INF/lib 下的所有 JAR 包,及 JDK 中的tools.jar 。
- 参考代码:附本人编写的 Java 实现文件(el_api20.txt,4.73K),可直接参考复用。
el_api20.txt (4.73 K)
开发阶段实现难度较低,核心挑战集中在测试环节,尤其是本地与服务器环境的一致性问题。
关键建议:搭建与服务器完全一致的本地测试环境(复制服务器部署文件至本地),便于快速重启、修改配置,精准复现服务器端问题,大幅提升调试效率。

- 现象:本地测试正常,部署到服务器后预览报表报错,错误信息【com.fr.general.data.TableDataException: 错误代码:11300001 数据集配置错误】。
- 排查步骤:直接查看报表实际错误日志,定位根因。
- 原因:服务器环境缺少
OKHTTPclient 相关 JAR 包,导致 HTTP 请求功能无法正常运行。
- 解决方案:
- 在本地
%FR_HOME%/lib 目录中找到 3 个 OKHTTP 相关 JAR 包;
- 将其复制到服务器
%FR_HOME%/server/lib 目录下;
- 重启 FineReport 服务器,问题解决。


- 现象:在数据集预览时手动输入的参数,关闭预览窗口后再次打开,参数信息消失。
- 原因:服务器已部署程序数据集对应的
class 文件,但本地设计器未同步放置该文件,导致设计器无法保存参数配置。
- 解决方案:将服务器上的程序数据集
class 文件复制到本地设计器对应目录(%FR_HOME%/webapps/webroot/WEB-INF/classes 下,需与包名路径匹配),重启设计器后参数可正常保存。
|