【问题标题】:Spring cloud config example from spring.io not workingspring.io 中的 Spring Cloud 配置示例不起作用
【发布时间】:2018-06-26 05:18:48
【问题描述】:

我正在尝试实现spring.io中显示的示例

关于Spring Cloud集中配置,但是在启动服务器的时候,出现了一个奇怪的编译错误:

java.lang.NoClassDefFoundError: org/springframework/boot/actuate/health/AbstractHealthIndicator
at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_141]
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[na:1.8.0_141]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_141]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) ~[na:1.8.0_141]
at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[na:1.8.0_141]
at java.net.URLClassLoader$1.run(URLClassLoader.java:368) ~[na:1.8.0_141]
at java.net.URLClassLoader$1.run(URLClassLoader.java:362) ~[na:1.8.0_141]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_141]
at java.net.URLClassLoader.findClass(URLClassLoader.java:361) ~[na:1.8.0_141]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_141]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_141]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_141]
at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_141]
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_141]
at java.lang.Class.getDeclaredMethods(Class.java:1975) ~[na:1.8.0_141]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:613) ~[spring-core-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:524) ~[spring-core-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:510) ~[spring-core-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:570) ~[spring-core-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:697) ~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:640) ~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:609) ~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1484) ~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:425) ~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:395) ~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:96) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:687) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:525) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at com.example.cloud.demoCloudConfig.DemoCloudConfigApplication.main(DemoCloudConfigApplication.java:12) [classes/:na]Caused by: java.lang.ClassNotFoundException: org.springframework.boot.actuate.health.AbstractHealthIndicator
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_141]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_141]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_141]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_141]
... 35 common frames omitted

pom.xml 和@SpringBootClasses,application.properties 和我提供的链接是一样的,请看这个链接:

https://spring.io/guides/gs/centralized-configuration/

会是什么问题?

【问题讨论】:

  • 您在 application.properties management.security.enabled=false 中有这行吗?你用的是哪个版本的springboot?
  • 嗨,我已经在服务器中设置了它,但没有任何不同。我正在使用 1.5.9 版本
  • 我刚刚检查了项目并进入了完整的部分,一切对我来说都很好。我的猜测是 ~/.m2/repository 中损坏的 maven 缓存

标签: java spring spring-boot spring-cloud spring-cloud-config


【解决方案1】:

请在你的 maven 中检查以下依赖项

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

如果存在,请在eclipse中正确检查maven配置。 NoClassDefFoundError on Maven dependency

【讨论】:

  • 谢谢,服务器中没有,但添加时出现同样的问题。
  • 请尝试在 Eclipse 之外构建,请参阅上面提到的链接
【解决方案2】:

库的版本有问题。 考虑到我的电脑连Spring官方教程都不能用,确实是不兼容(或者和我的系统)或者库之间不兼容的问题。

显然spring示例中暴露的1.5.9.RELEASE版本不能正常工作。

我也尝试克隆该示例的 github 存储库,得到相同的编译错误。

在这种特定情况下,切换到版本 1.5.5.RELEASE 解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 2016-08-31
    相关资源
    最近更新 更多