springBoot2.0.3+hystrix熔断器整合 注解提示错误

最终结果报错原因是因为guava-15.0.jar的包下载错误,原因可能是我在下载过程中中断过,导致包不可用,但是也加载不到正确的包,把仓库里所有的父节点的包和自己本身多版本的号全删提再下载,一切正常,

springBoot2.0.3直接在spring-cloud-starter-netflix-hystrix 有依赖,不需要去加其它包

   下面是一步步排错的路线

spring2.0.3版本 各种包的不兼容,并且把以前的集成的包给去掉了,我们自己去整合JAR包,超级麻烦, 提示是找不到相应的包 经过各种查资料,(最后才知道是包下载不完整)

解决方案:pom.xml添加依赖

      <dependency>
         <groupId>com.netflix.hystrix</groupId>
         <artifactId>hystrix-javanica</artifactId>
         <version>RELEASE</version>

      </dependency>

关键包要自己引入 , 当然这不是重要的,并且这个包不能和下面这个包同时存在,否则一直打不到包,其实是包冲突,上面依赖已经引入这个了,再添加一次就冲突,之前在网上找了很久,一直都 没有发现问题,后来把所有的包全删了,再一个个的加上,这个实在是太坑爹了,搞了一上午,所以,只需要hystrix-javanica 依赖就可以了,

<!--       <dependency>
         <groupId>com.netflix.hystrix</groupId>
         <artifactId>hystrix-core</artifactId>
         <version>RELEASE</version>

      </dependency> -->

 

下面是完整的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>


<groupId>com.example.hystrix</groupId>
<artifactId>hystrix</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>


<name>hystrix</name>
<description>Demo project for Spring Boot</description>


<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>


<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
</properties>


<dependencies>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
      </dependency>
 
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
      </dependency>
 
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
      </dependency>
 
      <dependency>
         <groupId>com.netflix.hystrix</groupId>
         <artifactId>hystrix-javanica</artifactId>
         <version>RELEASE</version>
      </dependency>
 
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
 

</project>

springBoot1.5版本和2.0以后的版本相差很大,依赖的东西都作了改动,需要自己慢慢去排查问题,没有依赖的话,自己找匹配的包引入,有的是引入包已经包含在集成的包里了,这样再引入一次可能就有问题,比如 spring-cloud-starter-netflix-eureka-client这里就已经引入了rabbon 项目无需引用,但是引用也不会错,
 排查的时候,要点进去看依赖的包里包含哪些,如果有就不再引入, 包冲突和包引用问题已经折腾自己好多次了,以后排查问题也需要更加仔细,更注重方法。

启动项目后,发现报这个错误

Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Lists

代码在编译的时候有时候会遇到Caused by: java.lang.ClassNotFoundException

如果在查阅完代码,发现没问题的时候,那么,有一种可能是你的此依赖包并没有下载完整。

举个场景来说,你在网络不好的时候,去编译打包,在去中央仓库拉依赖包com.google.common.*的时候,中途可能网络中断。之后,你再想重新编译打包,

但是你的本地maven库中已经有了此依赖包的不完整目录,所以便不会再重新下载此依赖包,所以你编译的时候,就会提示某个类找不到。

解决方法:

删除本地的此依赖包的目录,比如这里我删除了

/repository/com/google/guava/guava

然后重新mvn编译打包就可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值