SpringBoot 集成 FineBI

楼主
我是社区第240644位番薯,欢迎点我头像关注我哦~
1. 概述1.1 预期效果
用户经常需要将 FineBI 集成到 SpringBoot 中作为工程使用。
1.2 实现思路
在 IDEA 中新建 SpringBoot 工程作为客户工程,集成 FineBI ,打出 war 包并成功启动。
1.3 集成目的
集成一般是为了满足以下2种需求:
  • 用户定制化程度较高,需要在工程里直接调用BI/决策平台的代码。
  • 因其他原因(如部署环境等),需要将工程跟 FineBI 作为一个应用部署。



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

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.2 配置 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,将安装好的报表工程 %FineBI%webroot下的文件全部复制进去,如下图所示:
4)查看 webapp/WEB-INF/lib,将开发环境%JDK%/lib下的「tools.jar」放入,如下图所示:
5)打开项目的「pom.xml」,定位到</dependencies>标签前方,如下图所示:
在</dependencies>前添加如下内容:
<!-- fr -->

<dependency>
    <groupId>fine-accumulator</groupId>
    <artifactId>fine-accumulator</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-accumulator-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-activator</groupId>
    <artifactId>fine-activator</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-activator-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-core</groupId>
    <artifactId>fine-core</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-core-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-datasource</groupId>
    <artifactId>fine-datasource</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-datasource-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-decision</groupId>
    <artifactId>fine-decision</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-decision-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-decision-report</groupId>
    <artifactId>fine-decision-report</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-decision-report-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-report-engine</groupId>
    <artifactId>fine-report-engine</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-report-engine-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-schedule</groupId>
    <artifactId>fine-schedule</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-schedule-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-schedule-report</groupId>
    <artifactId>fine-schedule-report</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-schedule-report-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-swift-log-adaptor</groupId>
    <artifactId>fine-swift-log-adaptor</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-swift-log-adaptor-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-third</groupId>
    <artifactId>fine-third</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-third-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-webui</groupId>
    <artifactId>fine-webui</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-webui-10.0.jar</systemPath>
</dependency>

<!-- bi -->

<dependency>
    <groupId>fine-bi-adaptor</groupId>
    <artifactId>fine-bi-adaptor</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-bi-adapter-5.1.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-bi-datamine</groupId>
    <artifactId>fine-bi-datamine</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-bi-datamine-5.1.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-bi-datamine-third</groupId>
    <artifactId>fine-bi-datamine-third</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-bi-datamine-third-5.1.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-bi-engine-spider</groupId>
    <artifactId>fine-bi-engine-spider</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-bi-engine-spider-5.1.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-bi-engine-third</groupId>
    <artifactId>fine-bi-engine-third</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-bi-engine-third-5.1.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-bi-foundation</groupId>
    <artifactId>fine-bi-foundation</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-bi-foundation-5.1.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-decision-bi</groupId>
    <artifactId>fine-decision-bi</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-decision-bi-10.0.jar</systemPath>
</dependency>

<dependency>
    <groupId>fine-schedule-bi</groupId>
    <artifactId>fine-schedule-bi</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/main/webapp/WEB-INF/lib/fine-schedule-bi-10.0.jar</systemPath>
</dependency>


<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
</dependency>
显示代码

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 BI 兼容性操作
进入%FineBI%/webroot/web-inf/lib目录下,打开fine-bi-engine-third-5.1.jar,如下图所示:
删掉 javax 下的 validation 文件夹,如下图所示:
删掉 com/google下的 gson ,如下图所示:
删掉 org 下的「slf4j」,如下图所示:
3.6 编译启动
1)选择Build>Build Artifacts,选择项目名:war exploded - Rebuild,如下图所示:
2)构建完毕后,点击右上角的「Debug」,如下图所示:
3.7 效果查看


分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 2关注人数 8070浏览人数
最后回复于:2020-11-18 19:00

返回顶部 返回列表