FineReport 程序数据集实现 HTTP 请求数据获取实践文档

楼主
我是社区第1139764位番薯,欢迎点我头像关注我哦~

一、背景与需求

因业务数据需通过 HTTP 请求访问获取,初期计划采用数据集工厂方案,但受限于公司经费,最终确定通过程序数据集实现该需求。以下为完整实现流程、问题记录及解决方案,供同类场景参考。

二、前期准备

1. 参考官方文档与 Demo

优先查阅 FineReport 官方文档获取程序数据集基础指导,直接下载官方 Demo 源码(含完整实现逻辑),文档链接:带参程序数据集 | FineReport 帮助文档

2. 环境配置与代码准备

  • 导入依赖包:按官方文档要求,在 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 请求功能无法正常运行。
  • 解决方案
    1. 在本地%FR_HOME%/lib目录中找到 3 个 OKHTTP 相关 JAR 包;
    2. 将其复制到服务器%FR_HOME%/server/lib目录下;
    3. 重启 FineReport 服务器,问题解决。

问题二:程序数据集预览参数关闭后丢失

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

沙发
发表于 2025-9-10 10:17:19
板凳
发表于 7 天前

回帖奖励 +3

txt文件下载乱码,请重新上传一下,感谢。我之前也写过程序数据集,因为当时只是抱着学习的态度,实际应用中并没有用过。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

3回帖数 1关注人数 558浏览人数
最后回复于:4 天前

返回顶部 返回列表