添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Problem encountered

When use Spring Cloud OpenFeign, encounter error when start the application

1
2
3
4
5
6
7
8
9
10
11
12
13
***************************
APPLICATION FAILED TO START
***************************
Description:
Field gameServiceClient in com.durain.bootuorder.controller.GameClientController required a bean of type 'org.springframework.cloud.openfeign.FeignContext' that could not be found.
	- Bean method 'feignContext' not loaded because @ConditionalOnClass did not find required class 'feign.Feign'
Action:
Consider revisiting the conditions above or defining a bean of type 'org.springframework.cloud.openfeign.FeignContext' in your configuration.

Let’s take a look the version of original dependencies

  • SpringBoot : 2.0.3
  • SpringCloud : Finchley.SR1
  • spring-cloud-starter-openfeign : 2.0.1
  • Search from internet, the solutions like

  • Add @EnableFeignClients into SpringBootApplication class
  • 1
    2
    3
    4
    5
    6
    7
    8
    @SpringBootApplication
    @EnableFeignClients
    public class BootApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(BootApplication.class, args);
    

    But… I have already did this before run the applicaiton…

  • Or use Netflix Feign like
  • 1
    2
    3
    4
    <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-feign</artifactId>
    </dependency>
    

    But this have deprecated, and recommond use spring-cloud-starter-openfeign.

    Solution

    After few hours try and try… finally found the solution…

    From maven dependencies, feign-core loaded version 9.5.1 based on spring-cloud-starter-openfeign version 2.0.1, but there have latest version 10.0.1 in maven repository, so try to use latest version

    1
    2
    3
    4
    5
    <dependency>  
        <groupId>io.github.openfeign</groupId>  
        <artifactId>feign-core</artifactId>  
        <version>RELEASE</version>  
    </dependency>  
    

    It works now!!