SpringBoot整合ureport2

Ureport整合BUG记录

背景介绍:

​ jeecg-boot开源版本没有开放报表功能,所以打算自己整合一个ureport2。整合过程入第一章,然后出现了错误,排错过程第二章。

一、springboot整合ureport2

  • pom.xml 添加dependency

    		<dependency>
    			<groupId>com.syyai.spring.bootgroupId>
    			<artifactId>ureport-spring-boot-starterartifactId>
    			<version>2.2.9version>
    		dependency>	
    
  • 添加UreportConfig配置类

    package org.jeecg.config;
    
    import com.bstek.ureport.console.UReportServlet;
    import com.bstek.ureport.definition.datasource.BuildinDatasource;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.ImportResource;
    
    import javax.annotation.Resource;
    import javax.sql.DataSource;
    import java.sql.Connection;
    import java.sql.SQLException;
    
    @ImportResource("classpath:ureport-console-context.xml")//不加项目能够启动但是会导致加载数据源报错或加载不了
    @EnableAutoConfiguration
    @Configuration
    public class UReportConfig implements BuildinDatasource {
           
        @Resource
        DataSource dataSource;
        private Logger log = LoggerFactory.getLogger(getClass());
    
        @Bean //定义ureport的启动servlet
        @SuppressWarnings("unchecked")
        public ServletRegistrationBean ureportServlet() {
           
            ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new UReportServlet());
            servletRegistrationBean.addUrlMappings("/ureport/*");
            return servletRegistrationBean;
        }
    
        @Override
        public String name() {
           
            return "myUReportDatasource";
        }
    
        @Override
        public Connection getConnection() {
           
            try {
           
                return dataSource.getConnection();
            } catch (SQLException e) {
           
                log.error("Ureport 数据源 获取连接失败!");
                e.printStackTrace();
            }
            return null;
        }
    
    }
    
    
  • 根据’/ureport/designer’进入页面

错误记录

1、ureport.props属性重复定义,且不可重定义问题。

SpringBoot整合ureport2_第1张图片

解决办法:

spring配置一条属性:

spring:
  main:
    allow-bean-definition-overriding: true

2、项目顺利启动,但是进入/ureport/designer页面时出现500错误,后台报错信息:

Could not find acceptable representation

这是由于jeecg-boot自定义exceptionHandler抛出的,源错误信息是:

org.codehaus.jackson.map.ObjectMapper.setSerializationInclusion

这个方法不存在。

解决办法:

Idea 查找jar包依赖,发现codehaus.jackson这个jar包被引入了两次

一次是aliyun-oss里依赖1.83版本

一次是ureport里依赖1.91版本

形成了jar包冲突

故将aliyun-oss的低版本exclude即可。

你可能感兴趣的:(开发,spring,boot,ureport)