如何整合润乾报表到spring boot项目

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。下面介绍下一个简单的 springBoot 项目的搭建以及与润乾 V2018 集成的过程。

PS:如已掌握 springBoot 工程搭建,第一部分可忽略

开发工具:myeclipse 2017

一:maven 构建 springBoot 项目

1、访问http://start.spring.io/

2、选择构建工具 Maven Project、Spring Boot 版本,Dependencies

选择 web,可参考下图所示:

3、点击 Generate Project 下载项目压缩包

4、解压后,使用 eclipse,Import -> Existing Maven Projects -> Next -> 选择解压后的文件夹 -> Finsh,OK done。

工程会自动根据 pom.xml 中的配置自动加载需要的 jar 文件,jar 加载完成后一个简单的 springBoot 工程搭建完毕。

5、编写 controller 测试:

package com.neo.springBoot;

import java.util.Map;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

public****class HelloController {

@RequestMapping(“/hello”)

public String index() {

return“Hello world!”;

    }

}

6、启动 springBoot,工程搭建后,会自动在 com.neo.springBoot(neo.springBoot 路径为下载工程时设置的包路径)下生成一个 Application.java,运行该类就能启动工程,在该类上右键——Run As——Spring Boot App,即可启动项目。

7、打开浏览器访问:http://localhost:8080/hello,即可在页面中输出“Hello World!”

8、springBoot 默认不支持 jsp 页面展示,而报表需要通过 jsp 的 tag 标签展示,所以要在功能中增加 jsp 展示的配置。

9、打开 pom.xml,在里边增加:

<dependency>

 <groupId>javax.servlet</groupId>

 <artifactId>javax.servlet-api</artifactId>

 </dependency>

 <dependency>

 <groupId>javax.servlet</groupId>

 <artifactId>jstl</artifactId>

 </dependency>

<dependency>

 <groupId>org.apache.tomcat.embed</groupId>

 <artifactId>tomcat-embed-jasper</artifactId>

 </dependency>

 同样,工程会自动加载相关的jar包,下载完成后,工程即可支持jsp文件。

**二:集成润乾**

1:在src/main下新建目录webapp,并将润乾V5设计器安装后产生的demo应用下的文件复制到webapp下。springBoot不需要web.xml,所以web.xml不需要复制,并且WEB-INF下的lib目录不需要复制。

2:集成jar包,springBoot是通过maven管理jar包,在设计器安装目录下的\\report\\doc\\zh有个pom.xml,润乾需要的第三方jar包在该文件中配置,将润乾的pom.xml中的内容复制到工程中即可。润乾自己的jar包需要手动集成到springBoot项目中,集成方法:

在开发工具中,右键Referenced Libraries——Build Path——configure Build Path——Add External JARs,在弹出窗口中选择引入的jar包,本例只引入几个相关jar包,实际使用时引入除pom.xml中其他所有jar包,

![](http://img.raqsoft.com.cn/e/45a68f63c39e4467a368ccff57587adf.)

3、配置servlet

润乾报表需要servlet加载配置文件,普通java web应用中servlet是在web.xml中配置,但springBoot总并不会读取web.xml,所以所需要的servlet、listener、filter都需要单独在springBoot中单独配置。

Spring Boot提供了 `ServletRegistrationBean`,`FilterRegistrationBean`,`ServletListenerRegistrationBean`这3个来进行配置Servlet、Filter、Listener。

在工程中新建class,源码如下:

**package** com.neo.springBoot;

**import** java.util.*; 

**import** org.springframework.boot.context.embedded.FilterRegistrationBean; 

**import** org.springframework.boot.context.embedded.ServletListenerRegistrationBean; 

**import** org.springframework.boot.context.embedded.ServletRegistrationBean; 

**import** org.springframework.context.annotation.Bean; 

**import** org.springframework.context.annotation.Configuration; 

**import** org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

**import** com.raqsoft.report.view.ReportServlet;

**import** com.raqsoft.report.view.ServletMappings; 

@Configuration

**public class** WebConfig {  

@Bean

**public** ServletRegistrationBean servletRegistrationBean() { 

        ServletRegistrationBean registration = **new** ServletRegistrationBean(**new** ReportServlet());

registration.setLoadOnStartup(1);

registration.addInitParameter("configFile", "/WEB-INF/raqsoftConfig.xml");

registration.addInitParameter("headless", "none");

registration.setName("reportServlet");

registration.addUrlMappings("/reportServlet");

        ServletMappings._mappings_.put( "com.raqsoft.report.view.ReportServlet", "/reportServlet");

        System.**_out_**.println("润乾servlet注册完成");

**return**registration;

    } 

}

这样就可以完成润乾的reportServlet的注册,本例只介绍润乾V2018集成到springBoot中的核心操作,所以只需要这一个servlet即可,其他servlet、Filter、Listener等按照相应的方法添加即可。

4、制作测试报表放到src/main/webapp/WEB-INF/reportFiles目录下。

5、重启工程,在浏览器中访问:http://localhost:8080/reportJsp/showReport.jsp?rpx=test.rpx,即可展现报表,如图:

![](http://img.raqsoft.com.cn/e/59088b06fbd849b6b3de1bf1830b111e.)

至此,润乾V2018集成到springBoot成功。

PS:工程启动后,日中中可能有错误信息:

INFO: Error in building

org.jdom.JDOMException: Error in building

    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:373)

    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:673)

    at com.raqsoft.report.view.ServletMappings.read(Unknown Source:23)

    at com.raqsoft.report.view.ReportServlet._$1(Unknown Source:1403)

    at com.raqsoft.report.view.ReportServlet.loadConfig(Unknown Source:641)

    at com.raqsoft.report.view.ReportServlet.loadConfig(Unknown Source:155)

    at com.raqsoft.report.view.ReportServlet.init(Unknown Source:138)

原因:润乾原来部署方式一般是按照java web应用方式部署,所以需要web.xml,润乾的程序中会找该文件,而springBoot中不需要该文件,所以虽说报表能够正常展现,但是后台会有错误,解决办法:

1、随便弄个web.xml放到WEB-INF下

2、替换最新版raqsoftReport.jar(2018年3月份之后的,找润乾客服获取)

**总结:**润乾部署在springBoot上和和他常见部署最大的不同就是servlet的加载,在springBoot中要通过程序加载相应的servlet,加载方式也有多种,到时候根据实际情况进行设置即可。

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



作者:gxy
链接:http://c.raqsoft.com.cn/article/1534778906951
来源:乾学院
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

猜你喜欢

转载自blog.csdn.net/xiaohuihui_1992/article/details/83830313
今日推荐