spring 云ConsulRibbonClientConfiguration异常

spring cloud ConsulRibbonClientConfiguration exception

当我尝试使用 spring 云领事时,我在休息呼叫期间尝试自动装配 Ribbon 客户端时收到此错误:

"Error creating bean with name 'consulRibbonClientConfiguration': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/google/common/reflect/TypeToken"

其他时候我会得到这个错误: 创建名称为 'consulRibbonClientConfiguration' 的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.NoClassDefFoundError: 无法初始化 class com.netflix.client.config.CommonClientConfigKey

在我开始尝试使用我自己的配置 classes 之前,我已经完成了这项工作。现在,根据我 运行 它在哪个系统上,我会得到略有不同的错误,如上面的错误,其中 consul ribbon 客户端配置无法实例化自身。对这个问题的任何煽动都会有所帮助

配置 class 看起来像:

@Profile("!unit-test")
@EnableDiscoveryClient
@ImportResource("classpath:/hadoopContext.xml")
@Configuration
@EnableAutoConfiguration
public class XXXConfiguration..

主要的很简单: @SpringBootApplication

public class Main {

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

}

pom 正在使用:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-all</artifactId>
    <version>1.0.0.M3</version>
</dependency>

这个问题似乎是由 maven 文件中的冗余和不匹配的依赖项引起的。这些似乎与 Ribbon 无关,但我想这在 Ribbon 尝试初始化时以某种方式级联了这个问题。

对于未来的读者,我删除的冗余库包括:spring-tx、hadoop-common 和 javax.validation,所有这些都需要删除才能解决此错误。