SpringBoot2.1整合finereport10(帆软报表)
最近,公司采购了帆软的系统,领导安排要与公司的SpringBoot框架进行整合。费了一番牛劲,终于整合成功,下面分享一下我的经验。
首先,我的开发环境是Intellij IDEA,使用的SpringBoot版本是2.1.1,整合的finereport版本是10.0。
一、根据帆软官方教程 http://help.finereport.com/ 高级教程->部署集成->服务器部署->报表部署流程->嵌入式部署的介绍,

将%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文件夹下,如图所示:

注意,springboot框架默认是不带webapp文件夹以及其子文件夹WEB-INF的,此时需要自己创建这两个文件夹,并将webapp文件夹设置为Web Resource Directory。(通过Project Structure设置)
二、更改SpringBoot的配置(打包方式/启动方式)
1.修改pom文件
(1)修改打包方式为war

(2)修改pom依赖的包,添加servlet依赖,去掉内嵌Tomcat依赖,添加servlet-api依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
2.修改启动文件

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

(2)

(3)

点击Fix时,选择第一个即可。
附一张最后的项目结构图:

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

项目源代码链接:
第一部分: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的仓库中
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 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 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 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 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 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 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 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 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 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 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 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文件中,添加以下依赖(正文中的依赖不变)
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-core</artifactId>
<version>10.0</version>
</dependency>
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-activator</artifactId>
<version>10.0</version>
</dependency>
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-core</artifactId>
<version>10.0</version>
</dependency>
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-datasource</artifactId>
<version>10.0</version>
</dependency>
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-decision</artifactId>
<version>10.0</version>
</dependency>
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-decision-report</artifactId>
<version>10.0</version>
</dependency>
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-report-engine</artifactId>
<version>10.0</version>
</dependency>
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-schedule</artifactId>
<version>10.0</version>
</dependency>
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-schedule-report</artifactId>
<version>10.0</version>
</dependency>
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-swift-log-adaptor</artifactId>
<version>10.0</version>
</dependency>
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-third</artifactId>
<version>10.0</version>
</dependency>
<dependency>
<groupId>com.fine</groupId>
<artifactId>fine-webui</artifactId>
<version>10.0</version>
</dependency>
(3)此时,正文中第一步的过程中,可以把帆软提供的lib文件中以fine打头的jar包不拷贝到你的项目的webapp中
SpringBoot2.1整合finereport10(帆软报表)的更多相关文章
- 帆软报表和jeecg的进一步整合--ajax给后台传递map类型的参数
下面是页面代码: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...
- 帆软报表FineReport SQLServer数据库连接失败常见解决方案
1. 问题描述 帆软报表FineReport客户端连接SQLServer(2000.2005等),常常会出现如下错误:com.microsoft.sqlserver.jdbc.SQLServerExc ...
- 帆软报表FineReport中数据连接之Weblogic配置JNDI连接
1. 制作报表的原理 在帆软报表FineReport设计器中先用JDBC连接到数据库,建立数据库连接,然后用SQL或者其他方法创建数据集,使用数据集制作报表,然后把建立的数据库连接从JDBC连接改成J ...
- 帆软报表FineReport中数据连接之Jboss配置JNDI连接
使用sqlsever 2000数据库数据源来做实例讲解,帆软报表FineReport数据连接中Jboss配置JNDI大概的过程和WEBSPHERE以及WEBLOGIC基本相同,用JDBC连接数据库制作 ...
- 帆软报表FineReport中数据连接之Websphere配置JNDI连接
以oracle9i数据源制作的模板jndi.cpt为例来说明如何在FineReport中的Websphere配置JNDI连接.由于常用服务器的JNDI驱动过大,帆软报表FineReport中没有自带, ...
- 帆软报表FineReport中数据连接之Tomcat配置JNDI连接
1. 问题描述 在帆软报表FineReport中,通过JNDI方式定义数据连接,首先在Tomcat服务器配置好JNDI,然后在设计器中直接调用JNDI的名字,即可成功使用JNDI连接,连接步骤如下: ...
- 帆软报表FineReport中数据连接的JDBC连接池属性问题
连接池原理 在帆软报表FineReport中,连接池主要由三部分组成:连接池的建立.连接池中连接使用的治理.连接池的关闭.下面就着重讨论这三部分及连接池的配置问题. 1. 连接池原理 连接池技术的核心 ...
- 帆软报表(finereport)单元格中各颜色标识的含义
帆软报表(finereport)单元格中,可根据单元格角标的颜色判断单元格进行的操作 过滤:单元格左下角黄色三角形 条件属性:单元格左上角红色三角形. 控件:单元格右侧中间的各种矩形. 左父格:单 ...
- 帆软报表(finereport)安装/配置
1.首先是安装帆软报表软件 下载地址:http://www.finereport.com/product/download 激活码注册格账号就有了 2.启动软件,新建连接数据库 点 ...
- JEECG与帆软报表集成
将FineReport 集成到自己的web项目中,生成报表,可以方便快捷的和自己的项目融合在一起.简化了利用poi的导出遇到的问题. 1.首先在FR中建立好一个模板 例如:我的这张模板是连接 ...
随机推荐
- ArrayList增加扩容问题 源码分析
public class ArrayList<E>{ private static final int DEFAULT_CAPACITY = 10;//默认的容量是10 private s ...
- easyui combobox 不能选中值的问题
easyui comboxbox 下拉框加载到数据,但是不能选中.一般情况是重复渲染,页面有同名元素,valueField重复. 这次遇到的具体问题是,第一次刷新页面,可以选中,第二次不能选中.考虑到 ...
- H5新特性——--第三方绘图工具库 echarts(canvas)---SVG绘图
今天学习的内容 3.1:h5新特性---第三方绘图工具库 echarts(canvas) 百度 echarts;d3;two.js;.... 3.2:h5新特性---SVG绘图 3.2:h5新特性-- ...
- kettle连接oracle报错oracle.i18n.text.converter.CharacterConverter.OGS.getInstance(I)Loracle/i18n/text/converter/CharacterConverter
问题背景1:需要将一张excel中的数据导入到数据库中,并且还有关联转换和去重的处理问题,且此excel表不是固定的,需要写一个脚本 当新的excel拿来的时候,可以直接导入即可.所以我想用kettl ...
- 在JAVA中对于类,对象,继承,多态的看法
这是我第一次学高级语言.很抱歉选择了JAVA,目标是开发一款可以上线的APP. 类:是建立对象的一个模板,就是系列产品中的基础款图纸.只是图纸而已.不是产品. 对象:是一个可以操作的对象.新建一个对象 ...
- Problem creating zip: Execution exce ption (and the archive is probably corrupt but I could not delete it): Java heap space -> [Help 1]
今天mvn编译的时候报错: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5:s ...
- 浅谈如何检查Linux中开放端口列表
给大家分享一篇关于如何检查Linux中的开放端口列表的详细介绍,首先如果你想检查远程Linux系统上的端口是否打开请点击链接浏览.如果你想检查多个远程Linux系统上的端口是否打开请点击链接浏览.如果 ...
- JavaScript复习笔记——数据类型
1.undefined 使用var声明但未对其进行初始化时,这个变量的值就是undefined. 对未被初始化的值使用typeof会返回undefined值,而对未声明的变量执行typeof操作同样也 ...
- 大数据之hiveSQL
最近增加了学习java基础算法,包括几种排序算法,二叉树(前序,后序,中序),队列和栈,bmp搜索,广义搜索算法,迭代等等一些技巧(自己动手绝对比单纯的理论要强的多,多练练) HIVE是hadoop生 ...
- R_展示变量之间关系的图形
#绘制普通矩阵散点图 plot(dataframe) #绘制带有拟合直线,最佳拟合曲线和直方图的矩阵散点图 library(car) attach(dataframe) scatterplotMatr ...