多数据源定时任务问题

Blade 未结 1 23

一、该问题的重现步骤是什么?

1. 启用多数据源,其他模块没有问题,定时任务模块启动不了怎么回事,xxjob-admin可以启动,xxljob不行

2. 

3.


二、你期待的结果是什么?实际看到的又是什么?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

springcloud

四、请提供详细的错误堆栈信息,这很重要。

java.lang.IllegalArgumentException: Could not find class [com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure]

at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:334) ~[spring-core-5.3.27.jar:5.3.27]

at org.springframework.core.annotation.TypeMappedAnnotation.adapt(TypeMappedAnnotation.java:474) ~[spring-core-5.3.27.jar:5.3.27]

at org.springframework.core.annotation.TypeMappedAnnotation.getValue(TypeMappedAnnotation.java:397) ~[spring-core-5.3.27.jar:5.3.27]

at org.springframework.core.annotation.TypeMappedAnnotation.asMap(TypeMappedAnnotation.java:283) ~[spring-core-5.3.27.jar:5.3.27]

at org.springframework.core.annotation.AbstractMergedAnnotation.asAnnotationAttributes(AbstractMergedAnnotation.java:193) ~[spring-core-5.3.27.jar:5.3.27]

at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes(AnnotatedTypeMetadata.java:106) ~[spring-core-5.3.27.jar:5.3.27]

at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes(AnnotatedTypeMetadata.java:81) ~[spring-core-5.3.27.jar:5.3.27]

at org.springframework.context.annotation.AnnotationConfigUtils.attributesFor(AnnotationConfigUtils.java:285) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.context.annotation.AnnotationBeanNameGenerator.determineBeanNameFromAnnotation(AnnotationBeanNameGenerator.java:103) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.context.annotation.AnnotationBeanNameGenerator.generateBeanName(AnnotationBeanNameGenerator.java:82) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.registerBeanDefinitionForImportedConfigurationClass(ConfigurationClassBeanDefinitionReader.java:169) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:150) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:343) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:748) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) ~[spring-context-5.3.27.jar:5.3.27]

at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.11.jar:2.7.11]

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.11.jar:2.7.11]

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.11.jar:2.7.11]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.11.jar:2.7.11]

at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:164) [spring-boot-2.7.11.jar:2.7.11]

at org.springblade.core.launch.BladeApplication.run(BladeApplication.java:50) [blade-core-launch-3.1.1.RELEASE.jar:na]

at org.springblade.job.executor.JobApplication.main(JobApplication.java:34) [classes/:na]

Caused by: java.lang.ClassNotFoundException: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure

at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_131]

at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_131]

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_131]

at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_131]

at java.lang.Class.forName0(Native Method) ~[na:1.8.0_131]

at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_131]

at org.springframework.util.ClassUtils.forName(ClassUtils.java:284) ~[spring-core-5.3.27.jar:5.3.27]

at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:324) ~[spring-core-5.3.27.jar:5.3.27]

... 25 common frames omitted


五、若有更多详细信息,请在下面提供。


1条回答
  • xxljob可能是会有依赖冲突,这块我们没有做过改动,建议你也不要去修改xxljob原版的代码,你可以在job内通过API的形式去调用后端接口,后端接口对应的逻辑再进行数据源切换。


    如果你一定要修改xxljob源码支持多数据源,可以看下这个项目的原生集成方式:https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter



    作者追问:1小时前

    我就是再nacos中开启了多数据源配置,其他模块正常启动没问题,xxljob就启动不了,关闭多数据源,xxljob可以启动,怎么修改呢

    1 讨论(1)
提交回复