SpringBoot 集成 FineReport

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

本帖内容只做参考,实际项目环境中,建议咨询技术支持

1. 概述

1.1 预期效果

用户经常需要将 FineReport10.0 服务器集成到 SpringBoot 中作为工程使用。

1.2 实现思路

在 IDEA 中新建 SpringBoot 工程作为客户工程,集成 FineReport10.0 服务器,打出 war 包并成功启动。

1.3 集成目的

集成一般是为了满足以下2种需求:
  • 用户定制化程度较高,需要在工程里直接调用BI/决策平台的代码。
  • 因其他原因(如部署环境等),需要将工程跟 FineReport10.0 服务器作为一个应用部署。



2. 环境准备

2.1 准备开发环境

1)确保开发环境安装有 JDK、IDEA(旗舰版)和 maven。
注:当前集成仅支持 JDK 1.8。
2)确认 maven 安装成功,在cmd 中输入 mvn -version,如下图所示:

2.2 安装设计器

进行 设计器安装


3. 进行部署集成

3.1 进行 IDEA 配置

3.1.1 下载 Spring Assistant 插件

1)点击 File>Settings,选择 Plugins 在搜索框中找到 Spring Assistant ,点击 install ,下载完成后重启 IDEA ,如下图所示:

3.1.2 设置 JDK 路径

点击 File>Project Sturcture,选择 Projects ,设置 JDK 安装路径,如下图所示:

3.1.3 配置 maven

点击File>Settings,选择 Build,Execution,Deployment>maven,设置 maven 的安装位置,确认 「User settings File」 和 「Local repository 」在本地对应路径下有对应文件,点击 OK,如下图所示:
注:若没有 repository 文件,则直接创建即可。
注:settings 文件:settings.xml

3.2 新建 SpringBoot 项目

1)选择 File>New>Project,选择 Spring Initializr,默认设置,点击 Next,如下图所示:
2)根据实际情况设定,Packaging 选择「war」,点击 Next,如下图所示:
3)勾选Web>Spring Web,如下图所示:
4)指定项目名称和路径,点击完成,新建项目完成,如下图所示:


3.3 复制文件

1)在 src/main下新建名为 webapp 的文件夹,右击 main ,选择 New>Directory,如下图所示:
2)输入 webapp 后回车即可,如下图所示:
3)右键webapp>Show in Explorer,将安装好的报表工程 %FR_HOME%webroot下的文件全部复制进去,如下图所示:
4)查看 webapp/WEB-INF/lib,将开发环境%JDK%/lib下的「tools.jar」放入,如下图所示:
5)打开项目的「pom.xml」,定位到标签前方,如下图所示:
添加如下内容:


    fine-accumulator
    fine-accumulator
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-accumulator-10.0.jar



    fine-activator
    fine-activator
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-activator-10.0.jar



    fine-core
    fine-core
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-core-10.0.jar



    fine-datasource
    fine-datasource
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-datasource-10.0.jar



    fine-decision
    fine-decision
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-decision-10.0.jar



    fine-decision-report
    fine-decision-report
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-decision-report-10.0.jar



    fine-report-engine
    fine-report-engine
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-report-engine-10.0.jar



    fine-schedule
    fine-schedule
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-schedule-10.0.jar



    fine-schedule-report
    fine-schedule-report
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-schedule-report-10.0.jar



    fine-swift-log-adaptor
    fine-swift-log-adaptor
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-swift-log-adaptor-10.0.jar



    fine-third
    fine-third
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-third-10.0.jar



    fine-webui
    fine-webui
    system
    ${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-webui-10.0.jar

显示代码
 
6)点击右下角的 Import Changes,如果没弹,说明开了自动Import,等待进度条走完即可。


3.4 配置开发环境Tomcat

Tomcat官网 下载最新版本的Tomcat,放到项目路径下,解压到当前文件夹,如下图所示:
2)编辑 %Tomcat%/bin下的catalina.bat,如下图所示:
3)在此处加上内存限制,如下图所示:
4)返回 IDEA,点右上角的 Edit Configurations,如下图所示:
5)点加号,选择Tomcat> Local,如下图所示:
6)选择设置(Configure),再点左上角的加号,选择解压好的 apache-tomcat 文件夹,修改名称并点击确定,如下图所示:
7)选择部署(Depolyment ),点击右侧加号,选择添加Artifact,选择项目名:war exploded,下方的应用上下文(Application Context)需要改成/webroot或实际需要的应用上下文,点击确定,如下图所示:
8)切换回服务器(Server)标签页,修改URL为http://localhost:8080/应用上下文/decision,本例为http://localhost:8080/应webroot/decision,点击确定,如下图所示:

3.5 编译启动

1)选择Build>Build Artifacts,选择项目名:war exploded - Rebuild
2)构建完毕后,点击右上角的 Debug,如下图所示:

3.6 效果查看



分享扩散:

沙发
发表于 2020-11-19 09:17:49
板凳
发表于 2020-11-19 09:19:27
地板
发表于 2020-11-19 10:08:02
5楼
发表于 2020-11-19 14:05:19
6楼
发表于 2020-11-19 17:56:02
关键集成Springboot有什么用呢?还不如做个SSO来的方便
7楼
发表于 2021-5-18 09:20:28
不可以用idea内置tomcat吗?
8楼
发表于 2021-10-21 11:14:13
楼主威武
9楼
发表于 2021-11-3 22:29:50
你这个是springboot 版本多少啊?
10楼
发表于 2021-11-3 23:10:56
你们集成没有遇到jooq的问题嘛?
11楼
发表于 2021-11-4 00:23:48
jooq版本是不是不太对啊?
12楼
发表于 2022-1-7 11:04:24
用eclipse怎么启动,谁能救救我
13楼
发表于 2022-1-7 14:43:44
可以不访问决策系统直接访问报表吗
14楼
发表于 2022-1-17 11:57:01
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, JooqAutoConfiguration.class })
15楼
发表于 2022-1-29 16:20:20
16楼
发表于 2022-2-10 10:52:55
66666
17楼
发表于 2022-2-10 11:00:20
666666
18楼
发表于 2022-4-14 14:43:45
pom.xml 里少引入了  
<dependency>
            <groupId>fine-cbb</groupId>
            <artifactId>fine-cbb</artifactId>
            <version>11.0</version>
            <scope>system</scope>
            <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-cbb-11.0.jar</systemPath>
</dependency>  ;老是编译错误,找半天,f**k
19楼
发表于 2022-4-15 11:51:13
按照流程走下来启动tomcat后页面一直报404,显示
HTTP状态 404 - 未找到
类型 状态报告

消息 请求的资源[/webroot/decision]不可用

描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。

Apache Tomcat/8.5.78
20楼
发表于 2022-8-27 15:02:53

页面404什么鬼阿大佬

21楼
发表于 2022-10-20 15:45:21
spring 集成FineReport v11 我搞定了 回来分享下

https://bbs.fanruan.com/thread-141989-1-1.html
22楼
发表于 2022-11-21 22:20:13
个人感觉spring boot集成帆软的意义不大,因为打包好的war包包括帆软所需要的静态资源,还有其他的文件,这些大大小小的文件加起来和lib文件一起,大概整个包要超过1G,这样的war包部署到现场还不一定完全能运行,所以个人感觉不如直接用客户端,然后写class文件控制报表,也就是程序控制的方式。
23楼
发表于 2023-2-17 14:58:04
6666666
24楼
发表于 2023-3-24 16:30:46
For artifact {fine-accumulator:fine-accumulator:null:jar}: The version cannot be empty.
25楼
发表于 2023-3-24 16:31:34
For artifact {fine-accumulator:fine-accumulator:null:jar}: The version cannot be empty.
为什么依赖要填版本号
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表