Openfeign + Spring Cloud: поле требовало bean-компонента типа, который не удалось найти.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Openfeign + Spring Cloud: поле требовало bean-компонента типа, который не удалось найти.

Сообщение Anonymous »

У меня проблема с Spring и openfeign, и я думаю, вы можете мне помочь.
У меня есть следующий pom-файл:

Код: Выделить всё


4.0.0

xx.yyy
component
1.0.0
component


1.8
3.1.1
3.6.7
Greenwich.SR4



org.springframework.boot
spring-boot-starter-parent
2.1.10.RELEASE





org.springframework.boot
spring-boot-starter-actuator



org.springframework.boot
spring-boot-starter-amqp



org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-tomcat





org.springframework.boot
spring-boot-starter-jetty



org.springframework.cloud
spring-cloud-starter-config



org.springframework.cloud
spring-cloud-starter-openfeign

......



org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import



......
Я объявил в основном классе следующие конфигурации:

Код: Выделить всё

@SpringBootApplication(scanBasePackages = {"xx.yyy", "xx.yyy.rest.client"}, exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@EnableAsync
@Import({P2OrchestratorApplicationConfig.class})
public class P2OrchestratorApplication {

public static void main(String[] args) {
SpringApplication.run(P2OrchestratorApplication.class, args);
}
}
У меня есть собственный класс конфигурации имитации:

Код: Выделить всё

@Configuration
@EnableFeignClients()
@ImportAutoConfiguration({FeignAutoConfiguration.class})
public class FeignConfig {

@Bean
public OkHttpClient client() {
return new OkHttpClient();
}

@Bean
public Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}

@Bean
public Contract feignContract() {
return new feign.Contract.Default();
}
}
У меня есть открытый притворный клиент:

Код: Выделить всё

@FeignClient(name="legacyClient", value = "legacyClient", url = "${uri.microservice.legacy}",  configuration = FeignConfig.class)
public interface LegacyClient {

@PatchMapping(value = "/legacy/xxx/cleanLine/{authorizationCode}", produces = { MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity cleanLine(@PathVariable("authorizationCode") Long authorizationCode, @RequestParam(required = true) Long lineNumber);

}
и, наконец, компонент, в котором мне нужно использовать этот клиент:

Код: Выделить всё

@Log4j
@Component("p2ProcessAlgorithm")
public class P2ProcessAlgorithm {

@Autowired
@Qualifier("legacyClient")
private LegacyClient legacyClient;

public final void process(){

Long authorizationCode = 123L;
Long lineNumber = 1L;
Boolean isClean= this.legacClient.cleanLine(authorizationCode, lineNumber);
......
}
Но приложение выдает следующее сообщение:

Код: Выделить всё

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

Description:

Field legacyClient in xxx.yyy.p2.structure.P2ProcessAlgorithm required a bean of type 'xxx.yyy.rest.client.LegacyClient' that could not be found.

The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
- @org.springframework.beans.factory.annotation.Qualifier(value=p2AsyncOrchestratorService)

Action:

Consider defining a bean of type 'xxx.yyy.rest.client.LegacyClient' in your configuration.
Я попробовал несколько конфигураций, но не могу сделать клиент openfeign распознаваемым компонентом в классе P2ProcessAlgorithm.
У вас есть есть идеи?
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/590 ... t-be-found
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»