请上传宽度大于 1200px,高度大于 164px 的封面图片
    调整图片尺寸与位置
    滚轮可以放大缩小图片尺寸,按住图片拖动可调整位置,多余的会自动被裁剪掉
取消
yutons(uid:241602)
职业资格认证:FCA-FineReport
SpringBoot项目集成FineReport9.0实践
一、背景​ 因工作需要,部署了一套帆软报表系统,但是在实际应用过程中存在多套系统并存,对于用户来说无疑是一种负担,但是用帆软做报表系统开发报表方便便捷,且springboot配置及应用极为简单,二者结合,如虎添翼。​ 经过查阅相关资料,大多数整合方案都是将springboot打成war包方式整合,难以体现出springboot的优势所在,因此有了尝试打包成jar的想法,现将具体操作步骤奉上,欢迎大家吐槽。二、准备工作1、下载安装帆软报表DEMO​ 点击帆软报表V9.0版本下载并安装,安装成功后将用于报表系统集成及报表设计。三、集成步骤1、创建SpringBoot项目​ 创建SpringBoot项目并测试web应用可正常访问。2、引入帆软报表相关jar​ 在SpringBoot项目根目录创建lib目录并将如下jar包导入到lib目录 http://upload-images.jianshu.io/upload_images/11890587-1cbf5507bcaf12c6.png 131437 ​ 在pom文件中引入对应依赖​ 其中除了systemPath配置告诉maven引入的本地jar包的位置 com.fr fr-chart 9.0 system ${project.basedir}/libs/fr-chart-9.0.jar com.fr fr-core 9.0 system ${project.basedir}/libs/fr-core-9.0.jar com.fr fr-datasource 9.0 system ${project.basedir}/libs/fr-datasource-9.0.jar com.fr fr-performance 9.0 system ${project.basedir}/libs/fr-performance-9.0.jar com.fr fr-platform 9.0 system ${project.basedir}/libs/fr-platform-9.0.jar com.fr fr-report 9.0 system ${project.basedir}/libs/fr-report-9.0.jar com.fr fr-third 9.0 system ${project.basedir}/libs/fr-third-9.0.jar com.oracle ojdbc14 10.2.0.3.0 system ${project.basedir}/libs/ojdbc14.jar mysql mysql-connector-java 5.1.6 com.ibm.informix jdbc 4.10.6.20151104 org.clojars.gzeureka javapns 2.2 net.sourceforge.jtds jtds 1.2.2 org.xerial sqlite-jdbc 3.8.11.2 com.microsoft.sqlserver sqljdbc4 4.0 net.sf.squirrel-sql.plugins sybase 3.2.2 划重点!!!敲黑板!!!下面的一步配置也是最重要的一步,网上很多的教程缺了这样一步之后就会导致虽然本地可以运行,但是只要使用maven打包就不行,因为maven没有将本地的jar也打到生成的包中,在pom中给spring boot的打包插件设置一下includeSystemScope参数即可。 org.springframework.boot spring-boot-maven-plugin true 3、获取WebReport绝对路径​ 将WebReport目录拷贝到服务器的指定目录,如: http://upload-images.jianshu.io/upload_images/11890587-e77b49613c662351.png 131445 ​ 获取WebReport的绝对路径:D:\FineReport_9.0\WebReport4、在Controller中添加Servlet的映射及设置内置Tomcat运行项目目录@SpringBootApplication@RestControllerpublic class FinereportApplication { public static void main(String args) { SpringApplication.run(FinereportApplication.class, args); } /** * 验证web服务是否正常 * @return */ @GetMapping("/hello") public String hello(){ return "Hello World!"; } /** * 添加Servlet的映射 * @return */ @Bean public ServletRegistrationBean servletRegistrationBean(){ return new ServletRegistrationBean(new ReportServlet(),"/ReportServer"); } /** * 设置内置Tomcat运行项目目录 * @return */ @Bean public WebServerFactoryCustomizer webServerFactoryCustomizer(){ // 设置帆软报表根目录(第三步中获取的绝对路径) String documentRoot = "D:\FineReport_9.0\WebReport"; return new WebServerFactoryCustomizer() { @Override public void customize(ConfigurableWebServerFactory factory) { if (factory instanceof TomcatServletWebServerFactory) { TomcatServletWebServerFactory tomcat = (TomcatServletWebServerFactory) factory; if (!StringUtils.isEmpty(documentRoot)) { File root = null; try { root = ResourceUtils.getFile(documentRoot); } catch (FileNotFoundException e) { e.printStackTrace(); } tomcat.setDocumentRoot(root); } } } }; }}至此Springboot与帆软报表系统通过jar方式集成方案已经完成,附上项目目录: http://upload-images.jianshu.io/upload_images/11890587-f98812c2cf9f082e.png 131440 四、访问报表集成报表系统启动打包完成后执行:java -jar finereportdemo-0.0.1-SNAPSHOT.jar访问集成报表系统http://localhost:8080/ReportServer http://upload-images.jianshu.io/upload_images/11890587-6c3e49835bb71485.png 131441访问集成报表系统报表:http://localhost:8080/ReportServer?reportlet=demo/analytics/financial2/财务综合指标.cpt&op=write http://upload-images.jianshu.io/upload_images/11890587-cd0a62fa52f39f59.png 131442 编辑于 2019-12-21 16:41
个人成就
内容被浏览24,453
加入社区5年165天
返回顶部