NoClassDefFoundError org/springframework/cloud/client/loadbalancer/HttpRequestLoadBalancerRequest
nacos能发现服务,但是多个项目之间调用失败等问题
这个问题找了几天了,各种版本适配,包括官网代码都拿来运行都不行。
最后发现是集合的包里面版本不匹配导致。只能说坑B开源。
附上:生成的示例地址 https://start.aliyun.com/
版本说明 版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub
试验出来的版本如下:
<spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version> <spring-cloud.version>2020.0.6</spring-cloud.version> <spring-boot.version>2.4.2</spring-boot.version>
其他nacos及相关spring-cloud版本必须用3.0.1
集成包里面看着是3.0.1,但是不知道为什么项目依赖自动会升级成3.0.6
主pom。xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.taobao.arthas</groupId>
<artifactId>arthas-spring-boot-starter</artifactId>
<version>3.4.8</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
<version>3.0.1</version>
</dependency>
子pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- 这个包就是坑点,千万别用集成的包,点进去把下面4个复制出来单独引用就好了
集成的包里面 jar包版本自动替换版本升级到3.0.6,这里必须用3.0.1才行
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
<version>3.0.1</version>
</dependency> -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
<version>3.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
<version>3.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
<version>2.4.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.stoyanr</groupId>
<artifactId>evictor</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<!-- 千万别用集成的包,内嵌版本会自动升级
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>3.0.1</version>
</dependency>-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-openfeign-core</artifactId>
<version>3.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
<version>3.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-core</artifactId>
<version>10.10.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-slf4j</artifactId>
<version>10.10.1</version>
<scope>compile</scope>
</dependency>