SpringCloudGateway遇到的坑

1. 启动报错: No qualifying bean of type 'org.springframework.core.convert.ConversionService

原因:
这个异常是因为spring cloud gateway 是webflux 项目,引了含有 springMCV的依赖就会出现冲突, 比如: swagger2, spring-boot-starter-web等

解决方法:
排除相关依赖

<exclusions>
    <exclusion>
        <groupId>com.cnostar.cloudgroupId>
        <artifactId>cnocloud-commons-swagger2artifactId>
    exclusion>
exclusions>

或者

<exclusions>
    <exclusion>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    exclusion>
exclusions>

2.当一个接口上同时拥有@RequestMapping和@FeignClient注解时, 请求报错

@RequestMapping("/user/admin")
@FeignClient(ServiceNameConstants.USER_ADMIN_SERVICE)
public interface IUserAdminAuthApi {
	...
}

问题:
当一个接口上同时拥有@RequestMapping和@FeignClient注解时, 请求会报异常

解决方法:
把@RequestMapping放到方法上

3. 结合openFeign使用时, 请求报:feign.codec.DecodeException: No qualifying bean of type ‘org.springframework.boot.autoconfigure.http.HttpMessageConverters’ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

原因1:
提示找不到HttpMessageConverters, 之前还可以, 不知道为什么突然就报这个错, 怀疑可能是注入顺序导致的
SpringCloudGateway遇到的坑_第1张图片
解决方法:
手动交给spring一个解码器

@Configuration
public class FeignConfig {

    /**
     * gateway使用feign请求的时候报HttpMessageConverters未注入异常,
     * 自行配置一个Decoder, 避免该异常
     */
    @Bean
    public Decoder feignDecoder() {
        final HttpMessageConverters httpMessageConverters = new HttpMessageConverters(new MappingJackson2HttpMessageConverter());
        return new ResponseEntityDecoder(new SpringDecoder(() -> httpMessageConverters));
    }
}

**原因2: **
在接口中, Get请求的参数中没有加@RequestParam(“参数名”)
在这里插入图片描述
解决方法
加上@RequestParam(“参数名”)
在这里插入图片描述

你可能感兴趣的:(问题解决)