programing

springboot에서 feignclient를 찾을 수 없습니다.

javamemo 2023. 7. 24. 22:09
반응형

springboot에서 feignclient를 찾을 수 없습니다.

아래와 같은 오류 정보:

***************************
APPLICATION FAILED TO START
***************************

Description:

Field helloAgent in com.example.client.controller.Hello required a bean of 
type 'com.example.common.agent.HelloAgent' that could not be found.

Action:

Consider defining a bean of type 'com.example.common.agent.HelloAgent' in 
your configuration.

프로젝트 구조:

모듈: test-client를 클라이언트 호출자로 가장합니다.

module: test-server를 가장한 클라이언트 인터페이스 구현으로 지정합니다.

module: 테스트-공통 모든 가짜 클라이언트를 함께 배치합니다.

테스트 공통:

package com.example.common.agent;
@FeignClient("hello")
public interface HelloAgent {
    @GetMapping("/hello")
    String hello(@RequestParam String msg);
}

test-server:(잘 작동함)

package com.example.server.controller;

@RestController
public class Hello implements HelloAgent {
    @Override
    public String hello(@RequestParam String msg) {
        System.out.println("get " + msg);
        return "Hi " + msg;
    }
}

테스트 클라이언트:

package com.example.client.controller;

@RestController
public class Hello {
    @Autowired
    private HelloAgent helloAgent;

    @GetMapping("/test")
    public String test() {
        System.out.println("go");
        String ret = helloAgent.hello("client");
        System.out.println("back " + ret);
        return ret;
    }
}
----------------------------
@EnableEurekaClient
@EnableFeignClients
@SpringBootApplication
@ComponentScan(basePackages = {"com.example.common.agent","com.example.client.controller"})
public class TestClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(TestClientApplication.class, args);
    }
}

우리가 그들을 우아하게 관리할 수 있도록 모든 가짜 고객들을 한데 모을 방법이 있습니까?

아니면 이중화를 사용할 수 있는 유일한 방법이 있습니까?

감사합니다!

페이그는 모릅니다.@ComponentScan.

사용하다@EnableFeignClients(basePackages = {"com.example.common.agent","com.example.client.controller"})

구성을 사용한 솔루션

  • Swagger Codegen을 사용하는 경우 구성을 사용하여 아피스를 부트스트랩할 수 있습니다.
@Configuration
public class ParkingPlusFeignClientConfiguration {

  @Autowired
  private ParkingPlusProperties properties;

  @Bean
  public ServicoPagamentoTicket2Api ticketApi() {
    ApiClient client = new ApiClient();
    // https://stackoverflow.com/questions/42751269/feign-logging-not-working/59651045#59651045
    client.getFeignBuilder().logLevel(properties.getClientLogLevel());
    client.setBasePath(properties.getHost());
    // Generated from swagger: https://demonstracao.parkingplus.com.br/servicos
    return client.buildClient(ServicoPagamentoTicket2Api.class);
  }

}

언급URL : https://stackoverflow.com/questions/48273977/springboot-could-not-found-feignclient

반응형