0%

springcloud gateway异常

异常

异常1:

1
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.core.convert.ConversionService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Qualifier(value=webFluxConversionService)}

异常2:

1
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
## 解决过程
在搞SpringCloud GateWay时,死活启动不起来,google了一下。
原因1:`spring cloud gateway` 是`webflux` 项目,引了含有`web-starter`得项目就会出现冲突。因为`Hystrix-dashboard`中含有`web-starter`,所以出现冲突。
解决方式:去掉 pom.xml 中的 `spring-boot-starter-web `部分。
结果:排除web依赖之后依旧不好使。
原因2:webflux与mvc不兼容,如类路径中引用了webmvc会导致项目启动不起来
解决方式:找到依赖webmvc的jar包,将webmvc排除即可
eg:
```java
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>core</artifactId>
<version>${project.version}</version>
<exclusions>
<!--
1. webflux与webmvc不兼容,否则会项目启动不起来
-->
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</exclusion>
</dependency>

后来又看说是springboot版本不兼容问题,不管了,死马当活马医吧,将我的2.2.2改为2.0.5,成功了!!!
参考文章
最后修改springboot版本就好了,我的由2.2.2改为2.0.5,好像是2.1以上的版本不兼容。

关于webflux与mvc不兼容项目启动不起来的异常,如果项目中存在了tomcat的用来,则抛出的异常是

1
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

而如果没有依赖tomcat则抛出的异常是

1
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.core.convert.ConversionService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Qualifier(value=webFluxConversionService)}
欣赏此文?求鼓励,求支持!