添加了一个spring-boot-admin-starter-client出现的一个错误

问题描述

添加了包之后就启动不来

问题出现的环境背景及自己尝试过哪些方法

之前不加入这个是完全可以启动,想加入一个可视化的维护,然后遇到这个,怎么弄也不行
jdk1.8,这个没问题

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

2019-03-14 19:07:40.530 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application startup failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.xmjtran.Application]; nested exception is java.lang.IllegalStateException: Could not evaluate condition on de.codecentric.boot.admin.client.config.SpringBootAdminClientCloudFoundryAutoConfiguration due to org/springframework/boot/context/properties/bind/Binder not found. Make sure your own configuration does not rely on that class. This can also happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)

at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:616)
at org.springframework.context.annotation.ConfigurationClassParser.processDeferredImportSelectors(ConfigurationClassParser.java:548)
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:272)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:92)
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 com.xmjtran.Application.main(Application.java:24)
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.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)

Caused by: java.lang.IllegalStateException: Could not evaluate condition on de.codecentric.boot.admin.client.config.SpringBootAdminClientCloudFoundryAutoConfiguration due to org/springframework/boot/context/properties/bind/Binder not found. Make sure your own configuration does not rely on that class. This can also happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)

at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:55)
at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:102)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:217)
at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:606)
... 20 common frames omitted

Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/bind/Binder

at de.codecentric.boot.admin.client.config.SpringBootAdminClientEnabledCondition.getClientProperties(SpringBootAdminClientEnabledCondition.java:59)
at de.codecentric.boot.admin.client.config.SpringBootAdminClientEnabledCondition.getMatchOutcome(SpringBootAdminClientEnabledCondition.java:42)
at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47)
... 23 common frames omitted

Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.bind.Binder

at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 26 common frames omitted

Disconnected from the target VM, address: '127.0.0.1:53826', transport: 'socket'

Process finished with exit code 0

这个是application的
@SpringBootApplication(exclude={WebMvcAutoConfiguration.class})
@EnableDiscoveryClient
@EnableFeignClients //注解是开启feign的扫描
@EnableJpaAuditing //加上这个,jpa才能在保存时自动生成时间
public class Application {

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

你期待的结果是什么?实际看到的错误信息又是什么?

有没有这块的行家,看一下

阅读 9.9k
2 个回答

建议加上 spring boot 的版本号和 spring boot admin 的版本号。

java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/bind/Binder

这块应该是 spring boot 2里面新增的扩展,我没记错的话,看看是不是你的spring boot 版本和 admin 不兼容。

在client的maven文件中添加两个包即可:

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题