今天配置gateway网关的时候发现 报了这样一个问题Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway at this time. Please remove spring-boot-starter-web dependency.

我去检查pom文件的时候发现spring-boot-starter-web 已经去掉了。但是启动还是报错,只能手动排除了,所以添加了下面的依赖。

<exclusions>
    <exclusion>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
    </exclusion>
</exclusions>

解决~ 但是访问网关地址的时候,又报了这样一个问题

org.springframework.core.io.buffer.DefaultDataBufferFactory cannot be cast to org.springframework.core.io.buffer.NettyDataBufferFactory

java.lang.ClassCastException: org.springframework.core.io.buffer.DefaultDataBufferFactory cannot be cast to org.springframework.core.io.buffer.NettyDataBufferFactory

 

大概的意思就是 springcloud的gateway使用的是webflux,默认使用netty,所以要从依赖中排除 tomcat相关的依赖 ,就可以了。

所以完整的依赖应该是

<exclusions>
    <exclusion>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
    </exclusion>
    <exclusion>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-core</artifactId>
    </exclusion>
</exclusions>

 

更多推荐

关于gateWay配置问题 Spring MVC found on classpath, which is incompatible with Spring C