elastic-job-ui在使用druid作为数据库连接池时作业维度报错

问题说明:

我们项目中使用到了elastic-job,然后自己封装了个sdk,方便使用,里面的数据源配置是常用的druid+mysql的组合,在操作中,发现elastic-job-ui可视化控制台会报错无法使用。

深究其原因是因为,各个服务把定时任务注册到了zk中,包括数据库配置类的一些信息,但是elastic-job-ui源码中没有引入对应的pom依赖,导致他在去zk获取了定时任务的配置类信息后,需要想这些信息转换成对应的类对象操作时,没法成功转换。

解决:

处理也很简单,
一种是项目中包装的sdk不使用druid连接池即可,可以使用HikariCP,实测是没问题
另一种更简单,下载elastic-job-ui源码,在pom依赖中引入druid依赖接口(我们用这个,省的改项目代码,引用的地方太多了)

实操

下载源码,使用的示最新的3.0.2版本
https://github.com/apache/shardingsphere-elasticjob-ui/tree/3.0.2

1、引入依赖和配置

引入druid依赖,顺便mysql的也引入和配置下application,省的我们手动配置mysql依赖文件了
另外他这个build也调整下,不然你直接对他打包才几兆,不完整
elastic-job-ui在使用druid作为数据库连接池时作业维度报错_第1张图片





    4.0.0

    org.apache.shardingsphere
    shardingsphere-elasticjob-lite-ui
    3.0.2

shardingsphere-elasticjob-lite-ui-backend
${project.artifactId}


    
        org.apache.shardingsphere.elasticjob
        elasticjob-lite-lifecycle
    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    
    
        org.springframework.boot
        spring-boot-starter-test
    
    
        org.apache.openjpa
        openjpa
    
    
        org.apache.commons
        commons-dbcp2
    
    
        com.h2database
        h2
    
    
        org.postgresql
        postgresql
    
    
        javax.activation
        javax.activation-api
    
    
    
        mysql
        mysql-connector-java
        8.0.13
    
    
        com.alibaba
        druid-spring-boot-starter
        1.1.22
    

    
        javax.xml.bind
        jaxb-api
    
    
        com.sun.xml.bind
        jaxb-core
    
    
        com.sun.xml.bind
        jaxb-impl
    
    
        com.auth0
        java-jwt
    



    shardingsphere-elasticjob-lite-ui
    
        
            org.apache.maven.plugins
            maven-resources-plugin
            
                ${project.build.sourceEncoding}
                ${project.build.outputDirectory}
                
                    
                        ${project.build.directory}/classes/public
                        ${project.parent.basedir}/shardingsphere-elasticjob-lite-ui-frontend/dist
                    
                    
                        ${project.build.directory}/classes
                        src/main/resources
                    
                
            
        
        
            org.springframework.boot
            spring-boot-maven-plugin
            ${spring-boot.version}
        
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                
                    
                        repackage
                    
                
            
        
    

application.properties文件直接加入mysql配置选择

## Uncomment the following property to allow adding DataSource dynamically.
dynamic.datasource.allowed-driver-classes={'org.h2.Driver','org.postgresql.Driver','com.mysql.cj.jdbc.Driver'}

2、打包

直接用这个打好的jar包,直接运行即可,jar里面打包包含了前端页面
elastic-job-ui在使用druid作为数据库连接池时作业维度报错_第2张图片

3、访问

java -jar运行完这个jar包后,直接访问 http://127.0.0.1:8088/#/ 即可看到可视化控制台
账号密码都是默认的root
elastic-job-ui在使用druid作为数据库连接池时作业维度报错_第3张图片

你可能感兴趣的:(java开发,elastic-job定时任务,ui,数据库,java)