0

I'm trying to implement the example shown in spring.io

about Spring Cloud centralized configuration, but when it comes to start the server, there is a weird compilation error:

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

The pom.xml and the @SpringBootClasses, the application.properties are the same of the link I've provided, so see this link:

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

What kind of problem can it be?

Alessandro Argentieri
  • 2,901
  • 3
  • 32
  • 62
  • 1
    do you have this line in application.properties `management.security.enabled=false`? which version of springboot are u using? – pvpkiran Jan 17 '18 at 10:51
  • Hi, I've set it in the server but nothing different happens. I'm using 1.5.9 RELEASE – Alessandro Argentieri Jan 17 '18 at 12:17
  • I just checked out the project and went into the complete section and everything worked fine for me. My guess is corrupt maven cache in ~/.m2/repository – spencergibb Jan 17 '18 at 19:54

2 Answers2

1

Please check the following dependency in ur maven

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

If it exists, Please check the maven configuration properly in place in eclipse. NoClassDefFoundError on Maven dependency

VinuBibin
  • 679
  • 8
  • 19
0

There is a problem in the version of the libraries. Considering that even the Official Spring tutorial doesn't work on my computer, it is really a problem of incompatibility (or with my system) or among the libraries.

Apparently the version 1.5.9.RELEASE exposed in the spring example doesn't work correctly.

I've tried cloning also the github repository of the example getting the same compilation error.

In this specific case, switching to version 1.5.5.RELEASE solved the problem.

Alessandro Argentieri
  • 2,901
  • 3
  • 32
  • 62