报错信息
Description:
Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway.
Action:
Please set spring.main.web-application-type=reactive or remove spring-boot-starter-web dependency.
解析
这个错误信息是因为你的项目中同时存在Spring MVC和Spring Cloud Gateway,这两者是不兼容的。
Spring Cloud Gateway是基于Spring WebFlux构建的,Spring WebFlux是一个非阻塞的反应式web框架,而Spring MVC是一个阻塞的框架,它包含在spring-boot-starter-web依赖中。 要解决这个问题,你需要做以下其中一项:
①:如果不需要,从你的pom.xml中移除spring-boot-starter-web依赖。
②:如果你在同一个应用中需要Spring MVC和Spring Cloud Gateway,你可以在你的application.yml或application.properties文件中将web应用类型设置为REACTIVE。
以下是如何在application.yml中将web应用类型设置为REACTIVE:
spring:
main:
web-application-type: reactive
解决SpringMVC与SpringCloudGateway兼容性问题:选择Reactive模式,
文章讲述了在项目中同时使用SpringMVC和SpringCloudGateway时遇到的不兼容问题,建议移除spring-boot-starter-web依赖或设置web-application-type为reactive以确保两者协同工作。
967





