润乾报表如何如 springboot 集成,请问一下有没有比较新的详细教程
后端用的 springboot ,前端用的 vue 想要把润乾报表集成进去可是搜的教程都不行,最近的相关文档都是 4 年前的,百度云盘的分享连接也已经过期了。。。官方只有 web 集成的教程。。。官方能出个可用的后端用的 springboot ,前端用的 vue 教程么
"后端用的 springboot ,前端用的 vue 想要把润乾报表集成进去可是搜的教程都不行,最近的相关文档都是 4 年前的,百度云盘的分享连接也已经过期了。。。官方只有 web 集成的教程。 .."
后端用的 springboot ,前端用的 vue 想要把润乾报表集成进去可是搜的教程都不行,最近的相关文档都是 4 年前的,百度云盘的分享连接也已经过期了。。。官方只有 web 集成的教程。。。官方能出个可用的后端用的 springboot ,前端用的 vue 教程么
问题主要分两部分:
一:springboot 集成,润乾应用是一个标准的 java 的 web 应用,这个部署在 tomcat,weblogic 这些 web 中间件上比较容易,就是做为一个应用部署就行,但是 springboot 现在有点不同,1 是 springboot 里不会自动解析 web.xml,而润乾应用做为 web 应用一些启动配置都是在 web.xml 里,主要就是那个 reportServlet,这个是核心 servlet,里边会加载润乾的配置文件 raqsoftConfigx.ml,数据源、授权等都是在这个文件中配置,但是 springboot 不会默认加载,所以要自己写个 java 类对这个 servlet 进行注册,这个您那边看的教程里应该看到过那个类。第 2 就是,普通的 web 服务器加载 jar 是直接加载 WEB-INF lib 的 jar 包,而 springboot 里是通过 pom.xml 进行引用,那么需要在 pom 里进行引用,润乾的核心 jar 是 raqsoftReport.jar 和几个 esproc 开头的 jar,这几个要引用,至于是用 maven 私库方式还是走本地应用,这个就是具体 pom.xml 里怎么写了,都是标准方式
二:就是 vue 中怎么嵌入报表,报表部署到 springboot 中后,其实就是一个 web 应用,润乾提供了标准的 showReport.jsp 展示报表,可以用这个 jsp 展示报表,当然,如果要做严格的前后端分离,可能不用 jsp,那么润乾提供了 api 接口方式,可以将报表结果转成 html 串返回,写个 servlet 或者 controller,里边加载相应代码就行,这样就会返回 html,放到 vue 中的话,可以在 vue 里通过 iframe 方式引入这个 url,那么报表就集成到页面中了,至于是否用 iframe 还是 vue 中其他方式,这个原理都类似,其实就是在 vue 里怎么引入 url 问题,这个可以具体看下 vue 中写法,最简单常见的应该就是 iframe 方式了
至于 demo 应该是非必须,主要就是加载 servlet 和 pom.xml 引入 jar 包的问题,这个按照文档流程走下应该没啥问题。
通过 api 计算报表返回 html 串,这里有一些接口介绍,可以参考下 报表作为后端服务调用的方法及 API 相关类介绍
感谢回复,
集成后,项目启动的时候通过 servlet 加载了配置文件正常,(本地开发工具中也可以正常使用,说明授权文件是可以生效的)但是请求报表的时候,报错如下:请问是授权文件要在项目中单独放置么?
Reload Report Config………….
[2024-12-07 13:54:20]
INFO: 授权文件错误!
com/scudata/common/Base64
java.lang.NoClassDefFoundError: com/scudata/common/Base64
at com.raqsoft.report.model.engine.ExtCellSet.readLicense(Unknown Source:5287)
at com.raqsoft.report.view.ReportServlet.loadConfig(ReportServlet.java:319)
at com.raqsoft.report.view.ReportServlet.loadConfig(ReportServlet.java:203)
at com.raqsoft.report.view.ReportServlet.reloadConfig(ReportServlet.java:1943)
at com.raqsoft.report.tag.HtmlTag.generateHtmlString(HtmlTag.java:1495)
at com.raqsoft.report.tag.HtmlTagApi.getTagOutput(HtmlTagApi.java:13)
at com.aidex.ils.exceldata.controller.ExcelDataController1.downloadOrder(ExcelDataController1.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
看错误是少 jar 包,lib 下有三个 esproc 开头的 jar,检查那三个是否引入