SpringCloudGateway遇到的坑
1. 启动报错: No qualifying bean of type 'org.springframework.core.convert.ConversionService原因:gateway采用的是webflux, 如果引入了含有mvc的依赖就会报错, 比如: swagger2, spring-boot-starter-web等解决方法:排除相关依赖<exclusions>...
·
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.cloud</groupId>
<artifactId>cnocloud-commons-swagger2</artifactId>
</exclusion>
</exclusions>
或者
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</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, 之前还可以, 不知道为什么突然就报这个错, 怀疑可能是注入顺序导致的
解决方法:
手动交给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(“参数名”)
更多推荐
已为社区贡献2条内容
所有评论(0)