18:23:04.707 [main] ERROR org.springframework.boot.SpringApplication - Application startup failed org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [cn.kelaile.mall.log.Application]; nested exception is java.lang.IllegalStateException: Unable to read meta-data for class com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure at org.springframework.context.annotation.ConfigurationClassParser.processDeferredImportSelectors(ConfigurationClassParser.java:556) at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:185) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:308) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:270) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:687) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:525) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) at cn.kelaile.mall.log.Application.main(Application.java:19) 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.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) Caused by: java.lang.IllegalStateException: Unable to read meta-data for class com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.getAnnotationMetadata(AutoConfigurationSorter.java:217) at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.getAnnotationValue(AutoConfigurationSorter.java:198) at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.readBefore(AutoConfigurationSorter.java:186) at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.(AutoConfigurationSorter.java:158) at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClasses.(AutoConfigurationSorter.java:115) at org.springframework.boot.autoconfigure.AutoConfigurationSorter.getInPriorityOrder(AutoConfigurationSorter.java:57) at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.sort(AutoConfigurationImportSelector.java:241) at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.selectImports(AutoConfigurationImportSelector.java:98) at org.springframework.context.annotation.ConfigurationClassParser.processDeferredImportSelectors(ConfigurationClassParser.java:547) ... 22 common frames omitted Caused by: java.io.FileNotFoundException: class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class] cannot be opened because it does not exist at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172) at org.springframework.core.type.classreading.SimpleMetadataReader.(SimpleMetadataReader.java:50) at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:98) at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.createMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:89) at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.getMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:76) at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:93) at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.getAnnotationMetadata(AutoConfigurationSorter.java:213) ... 30 common frames omitted
在eclipse里面运行正常,打成jar报运行则报此问题
1.1.3 . spring boot 用的是1.5.6
原提问者GitHub用户WangBuEr
可能是因为编译时缺少Druid的相关依赖库或者Spring Boot版本不兼容造成的。
以下是可能的解决方法:
检查依赖库是否完整。如果在编译时缺少Druid的相关依赖库,可能会导致无法加载DruidDataSourceAutoConfiguration。解决方法是在pom.xml文件中添加如下依赖:
Copy
com.alibaba
druid-spring-boot-starter
1.2.4
其中,druid-spring-boot-starter是Druid的Spring Boot Starter依赖库,可以自动配置DruidDataSourceAutoConfiguration。
检查Spring Boot版本是否兼容。如果使用的Spring Boot版本过低,可能会导致无法加载DruidDataSourceAutoConfiguration。解决方法是升级到最新版本的Spring Boot,并确保与其他依赖库的版本兼容。
检查代码是否正确。如果应用程序的代码中存在错误,例如配置文件格式不正确、注解使用错误等,也可能会导致无法加载DruidDataSourceAutoConfiguration。解决方法是检查应用程序的代码,并根据错误信息进行相应的调整和修正。
Spring Boot自动配置的一个类,它用于配置Druid数据库连接池。你需要确保你的jar文件中包含了这个类的元数据信息。
在你的jar文件中,你需要确保你的DruidDataSourceAutoConfigure类所在的包路径是正确的
这个错误通常是由于缺少依赖或配置问题导致的。以下是一些可能的解决方案:
pom.xml
文件中添加以下依赖项:<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>最新版本号</version>
</dependency>
如果已经添加了依赖并且问题仍然存在,请检查你的IDE是否正确地将这些依赖项打包到生成的JAR文件中。可以尝试使用Maven命令进行构建,确保依赖项已正确包含。
如果你使用的是Spring Boot 2.x版本,可能会遇到与Druid的自动配置不兼容的问题。你可以尝试在启动类上加上@EnableAutoConfiguration(exclude = DruidDataSourceAutoConfigure.class)
注解来排除Druid的自动配置。
检查你的配置文件,确保Druid的相关配置正确。比如,检查application.properties
或application.yml
文件中的Druid相关配置项。
如果你使用了多个数据源,并且没有明确指定默认数据源,可以尝试在你的配置类上添加@Primary
注解,以确保Druid作为默认数据源被正确加载。
如果仍然无法解决问题,请提供更多关于你的项目配置和依赖的信息,以便更好地帮助你解决问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。