Quantcast
Channel: Active questions tagged rest - Stack Overflow
Viewing all articles
Browse latest Browse all 3630

Openfeign + Spring cloud : Field required a bean of type that could not be found

$
0
0

I have a problem with spring and openfeign in which I think you can help me.

I have a pom file as follows:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>xx.yyy</groupId><artifactId>component</artifactId><version>1.0.0</version><name>component</name><properties><java.version>1.8</java.version><maven-jar-plugin.version>3.1.1</maven-jar-plugin.version><pact.version>3.6.7</pact.version><spring-cloud.version>Greenwich.SR4</spring-cloud.version></properties><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.10.RELEASE</version><relativePath /></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>......<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>......

I have declared in the main class the following configurations:

@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);    }}

I have a custom feign configuration class:

@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();    }}

I have a open feign client as follow:

@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<Boolean> cleanLine(@PathVariable("authorizationCode") Long authorizationCode, @RequestParam(required = true) Long lineNumber);}

and finally a Component in which I need to use this client:

@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);......}

But the app give me the next message:

***************************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.

I've tried several configurations but I can't get the openfeign client to be a recognized bean in the P2ProcessAlgorithm class.

Do you have any idea?

Thanks in advance


Viewing all articles
Browse latest Browse all 3630

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>