NoClassDefFoundError: com/netflix/hystrix/contrib/javanica/aop/aspectj/HystrixCommandAspect

来源:互联网 发布:linux 避免别人误删 编辑:程序博客网 时间:2024/06/16 05:57

在Spring Cloud Feign工程中配置断路器Hystrix的时候,pom.xml文件已经加入Hystrix相关的jar:

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

Application.java:

@SpringBootApplication@EnableDiscoveryClient@EnableFeignClients@EnableHystrix@EnableHystrixDashboardpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}

当启动的时候,报如下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/netflix/hystrix/contrib/javanica/aop/aspectj/HystrixCommandAspect    at java.lang.Class.getDeclaredMethods0(Native Method)    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)    at java.lang.Class.getDeclaredMethods(Class.java:1975)    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:613)    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:524)    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:510)    at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:570)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:697)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:640)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:609)    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1484)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:425)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:395)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:515)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:508)    at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1186)    at org.springframework.boot.SpringApplication.getExitCodeFromMappedException(SpringApplication.java:818)    at org.springframework.boot.SpringApplication.getExitCodeFromException(SpringApplication.java:804)    at org.springframework.boot.SpringApplication.handleExitCode(SpringApplication.java:790)    at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:744)    at org.springframework.boot.SpringApplication.run(SpringApplication.java:314)    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)

可以看出来是找不到HystrixCommandAspec.java这个类,于是在github上找到这个源文件:
https://github.com/dmgcodevil/Hystrix/blob/958ec5d7b4bb967be077a4c2bbcdc71e7a7f5248/hystrix-contrib/hystrix-javanica/src/main/java/com/netflix/hystrix/contrib/javanica/aop/aspectj/HystrixCommandAspect.java

https://github.com/dmgcodevil/Hystrix/tree/958ec5d7b4bb967be077a4c2bbcdc71e7a7f5248/hystrix-contrib/hystrix-javanica

在pom.xml文件中加入:

    <!-- https://mvnrepository.com/artifact/com.netflix.hystrix/hystrix-javanica -->        <dependency>            <groupId>com.netflix.hystrix</groupId>            <artifactId>hystrix-javanica</artifactId>            <version>1.5.12</version>        </dependency>

问题解决OK!

原创粉丝点击