润乾与 springBoot 集成

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 包,

3、配置 servlet

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

Spring Boot 提供了 ServletRegistrationBeanFilterRegistrationBeanServletListenerRegistrationBean这 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 注册完成”);

returnregistration;

    } 

}

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

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

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

至此,润乾 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,加载方式也有多种,到时候根据实际情况进行设置即可。

以下是广告时间

对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅



嗯,还不太了解好多乾?
猛戳这里
玩转好多乾