SpringBoot2.1整合finereport10(帆软报表)

Stella981
• 阅读 1030

最近,公司采购了帆软的系统,领导安排要与公司的SpringBoot框架进行整合。费了一番牛劲,终于整合成功,下面分享一下我的经验。

首先,我的开发环境是Intellij IDEA,使用的SpringBoot版本是2.1.1,整合的finereport版本是10.0。

一、根据帆软官方教程 http://help.finereport.com/ 高级教程->部署集成->服务器部署->报表部署流程->嵌入式部署的介绍,

SpringBoot2.1整合finereport10(帆软报表)

将%FineReport_HOME%\webapps\webroot\WEB-INF目录下面的assets、assist、classes、embed、lib、plugins、reportlets七个文件夹复制到你的项目的webapp的WEB-INF文件夹下,再将%JAVA_HOME%/jdk/lib下的tools.jar拷贝到你的项目的webapp的WEB-INF的lib文件夹下,如图所示:

SpringBoot2.1整合finereport10(帆软报表)

注意,springboot框架默认是不带webapp文件夹以及其子文件夹WEB-INF的,此时需要自己创建这两个文件夹,并将webapp文件夹设置为Web Resource Directory。(通过Project Structure设置)

二、更改SpringBoot的配置(打包方式/启动方式)

1.修改pom文件

(1)修改打包方式为war

SpringBoot2.1整合finereport10(帆软报表)

(2)修改pom依赖的包,添加servlet依赖,去掉内嵌Tomcat依赖,添加servlet-api依赖:

 1     <dependencies>
 2         <dependency>
 3             <groupId>org.springframework.boot</groupId>
 4             <artifactId>spring-boot-starter-web</artifactId>
 5             <exclusions>
 6                 <exclusion>
 7                     <groupId>org.springframework.boot</groupId>
 8                     <artifactId>spring-boot-starter-tomcat</artifactId>
 9                 </exclusion>
10             </exclusions>
11         </dependency>
12         <dependency>
13             <groupId>javax.servlet</groupId>
14             <artifactId>javax.servlet-api</artifactId>
15             <version>3.1.0</version>
16             <scope>provided</scope>
17         </dependency>
18     </dependencies>

2.修改启动文件

SpringBoot2.1整合finereport10(帆软报表)

3.在idea中设置项目以tomcat方式启动

(1)

SpringBoot2.1整合finereport10(帆软报表)

(2)

SpringBoot2.1整合finereport10(帆软报表)

(3)

SpringBoot2.1整合finereport10(帆软报表)

点击Fix时,选择第一个即可。

附一张最后的项目结构图:

SpringBoot2.1整合finereport10(帆软报表)

三、启动程序

在地址栏中输入http://ip:端口号/项目目录/decision,能成功显示下图页面,则表明SpringBoot集成FineReport成功。

SpringBoot2.1整合finereport10(帆软报表)

项目源代码链接:

第一部分:https://download.csdn.net/download/weixin\_44299969/10894741

第二部分:https://download.csdn.net/download/weixin\_44299969/10894769

第三部分:https://download.csdn.net/download/weixin\_44299969/10894786

第四部分:https://download.csdn.net/download/weixin\_44299969/10894809

四、补充

  1.网上的教程中,有很多介绍将finereport的lib文件做成maven repository的,本人试了试,也可以操作成功,具体操作方法为:

(1)新建一个bat文件,并将下列的语句复制进去,注意根据你的实际情况修改finereport的jar包的路径,运行这个bat文件,finereport的jar包就会加载到maven的仓库中

 1 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-accumulator-10.0.jar -DgroupId=com.fine -DartifactId=fine-accumulator -Dversion=10.0 -Dpackaging=jar
 2 
 3 
 4 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-activator-10.0.jar -DgroupId=com.fine -DartifactId=fine-activator -Dversion=10.0 -Dpackaging=jar
 5 
 6 
 7 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-core-10.0.jar -DgroupId=com.fine -DartifactId=fine-core -Dversion=10.0 -Dpackaging=jar
 8 
 9 
10 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-datasource-10.0.jar -DgroupId=com.fine -DartifactId=fine-datasource -Dversion=10.0 -Dpackaging=jar
11 
12 
13 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-decision-10.0.jar -DgroupId=com.fine -DartifactId=fine-decision -Dversion=10.0 -Dpackaging=jar
14 
15 
16 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-decision-report-10.0.jar -DgroupId=com.fine -DartifactId=fine-decision-report -Dversion=10.0 -Dpackaging=jar
17 
18 
19 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-report-engine-10.0.jar -DgroupId=com.fine -DartifactId=fine-report-engine -Dversion=10.0 -Dpackaging=jar
20 
21 
22 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-schedule-10.0.jar -DgroupId=com.fine -DartifactId=fine-schedule -Dversion=10.0 -Dpackaging=jar
23 
24 
25 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-schedule-report-10.0.jar -DgroupId=com.fine -DartifactId=fine-schedule-report -Dversion=10.0 -Dpackaging=jar
26 
27 
28 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-swift-log-adaptor-10.0.jar -DgroupId=com.fine -DartifactId=fine-swift-log-adaptor -Dversion=10.0 -Dpackaging=jar
29 
30 
31 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-third-10.0.jar -DgroupId=com.fine -DartifactId=fine-third -Dversion=10.0 -Dpackaging=jar
32 
33 
34 call mvn install:install-file -Dfile=E:\programfiles\FineReport_10.0\webapps\webroot\WEB-INF\lib\fine-webui-10.0.jar -DgroupId=com.fine -DartifactId=fine-webui -Dversion=10.0 -Dpackaging=jar

  (2)在pom文件中,添加以下依赖(正文中的依赖不变)

 1 <dependency>
 2             <groupId>com.fine</groupId>
 3             <artifactId>fine-core</artifactId>
 4             <version>10.0</version>
 5         </dependency>
 6         <dependency>
 7             <groupId>com.fine</groupId>
 8             <artifactId>fine-activator</artifactId>
 9             <version>10.0</version>
10         </dependency>
11         <dependency>
12             <groupId>com.fine</groupId>
13             <artifactId>fine-core</artifactId>
14             <version>10.0</version>
15         </dependency>
16         <dependency>
17             <groupId>com.fine</groupId>
18             <artifactId>fine-datasource</artifactId>
19             <version>10.0</version>
20         </dependency>
21         <dependency>
22             <groupId>com.fine</groupId>
23             <artifactId>fine-decision</artifactId>
24             <version>10.0</version>
25         </dependency>
26         <dependency>
27             <groupId>com.fine</groupId>
28             <artifactId>fine-decision-report</artifactId>
29             <version>10.0</version>
30         </dependency>
31         <dependency>
32             <groupId>com.fine</groupId>
33             <artifactId>fine-report-engine</artifactId>
34             <version>10.0</version>
35         </dependency>
36         <dependency>
37             <groupId>com.fine</groupId>
38             <artifactId>fine-schedule</artifactId>
39             <version>10.0</version>
40         </dependency>
41         <dependency>
42             <groupId>com.fine</groupId>
43             <artifactId>fine-schedule-report</artifactId>
44             <version>10.0</version>
45         </dependency>
46         <dependency>
47             <groupId>com.fine</groupId>
48             <artifactId>fine-swift-log-adaptor</artifactId>
49             <version>10.0</version>
50         </dependency>
51         <dependency>
52             <groupId>com.fine</groupId>
53             <artifactId>fine-third</artifactId>
54             <version>10.0</version>
55         </dependency>
56         <dependency>
57             <groupId>com.fine</groupId>
58             <artifactId>fine-webui</artifactId>
59             <version>10.0</version>
60         </dependency>

  (3)此时,正文中第一步的过程中,可以把帆软提供的lib文件中以fine打头的jar包不拷贝到你的项目的webapp中

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Easter79 Easter79
2年前
SpringBoot2.1整合finereport10(帆软报表)
最近,公司采购了帆软的系统,领导安排要与公司的SpringBoot框架进行整合。费了一番牛劲,终于整合成功,下面分享一下我的经验。首先,我的开发环境是IntellijIDEA,使用的SpringBoot版本是2.1.1,整合的finereport版本是10.0。一、根据帆软官方教程 http://help.finereport.com/(
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
4个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这