Spring Cloud gateway 运行报错:Please set spring.main.web-application-type=reactive or remove spring-boot

这篇具有很好参考价值的文章主要介绍了Spring Cloud gateway 运行报错:Please set spring.main.web-application-type=reactive or remove spring-boot。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

昨天在使用 Spring Cloud gateway 运行报错:“Please set spring.main.web-application-type=reactive or remove spring-boot-starter-web dependency”。经过一番分析与解决现在和大家分享一下解决办法。

首先,来了解一下这个报错的原因。该报错信息的意思是当前应用既引入了spring-cloud-starter-gateway包,又引入了spring-boot-starter-web包,这样会导致冲突。因为Spring Cloud Gateway本身是基于WebFlux构建的,而spring-boot-starter-web是基于Servlet容器的,两者不能同时存在。

那么,我们该如何解决这个问题呢?下面是解决方案的几个步骤:

步骤一:移除冲突的依赖

首先,我们需要在你的项目的pom.xml文件中找到spring-boot-starter-web依赖,并将其删除。这样就解决了冲突的问题。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

步骤二:设置web-application-type为reactive

接下来,我们需要在应用的配置文件application.yml或application.properties中添加以下配置:

spring:
  main:
    web-application-type: reactive

这样,我们告诉Spring Boot应用程序使用响应式的Web应用类型。

步骤三:使用GatewayFilter作为代替

如果你仍然希望使用Spring Boot的传统Servlet容器,而不是WebFlux,那么你可以考虑使用GatewayFilter来代替Spring Cloud Gateway。GatewayFilter是一种轻量级的网关解决方案,它可以与Spring Boot的Servlet容器一起使用,而无需引入WebFlux。

@Bean
public RouteLocator myRoutes(RouteLocatorBuilder builder) {
    return builder.routes()
        .route(p -> p.path("/api")
            .filters(f -> f.filter(new MyFilter()))
            .uri("http://example.com"))
        .build();
}

上面的代码展示了使用GatewayFilter的示例,你可以根据自己的需求进行定制。

通过以上几个步骤,我们就成功解决了Spring Cloud Gateway报错的问题。希望我的分享对你有所帮助。文章来源地址https://www.toymoban.com/news/detail-821802.html

到了这里,关于Spring Cloud gateway 运行报错:Please set spring.main.web-application-type=reactive or remove spring-boot的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring Cloud 八】Spring Cloud Gateway网关

    【Spring Cloud一】微服务基本知识 【Spring Cloud 三】Eureka服务注册与服务发现 【Spring Cloud 四】Ribbon负载均衡 【Spring Cloud 五】OpenFeign服务调用 【Spring Cloud 六】Hystrix熔断 【Spring Cloud 七】Sleuth+Zipkin 链路追踪 在项目中是使用了Gateway做统一的请求的入口,以及统一的跨域处理以及

    2024年02月12日
    浏览(46)
  • Spring Cloud Gateway 超时、CORS配置 | Spring Cloud 17

    Spring Cloud Gateway 可以为所有路由配置 Http 超时(响应和连接) ,并为每个特定路由覆盖设置。 配置全局 http 超时: connect-timeout 必须 以毫秒为单位 指定。 response-timeout 必须指定为 java.time.Duration 使用示例:

    2024年02月14日
    浏览(53)
  • Spring Boot 中的 Spring Cloud Gateway

    Spring Cloud Gateway 是一个基于 Spring Boot 的网关框架,它提供了一种统一的入口,将所有的请求路由到不同的后端服务中。Spring Cloud Gateway 采用了 Reactive 编程模型,可以处理大量并发请求,同时还具备负载均衡、熔断、限流等功能。本文将介绍 Spring Cloud Gateway 的原理和使用方法

    2024年02月12日
    浏览(49)
  • Spring Cloud Gateway

    目录 一、Spring Cloud Gateway 1、网关介绍 2、GateWay 3、GateWay项目搭建 4、GateWay配置路由的两种方式 4.1、YML配置 4.2、配置类 5、GateWay实现负载均衡 5.1、自动负载均衡 5.2、手动负载均衡 6、GateWay断言Predicate 7、GateWay的Filter         在 微服务架构 中,一个 系统会被拆分为很多

    2024年02月10日
    浏览(48)
  • Spring Cloud Gateway 监控、多网关实例路由共享 | Spring Cloud 18

    Actuator 是 Spring Boot 提供的用来对应用系统进行监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。 Actuator 的核心是端点 Endpoint 。 Endpoint 可以让我们监视应用程序并与其交互。 Spring Boot 包含许多内置端点,并允许您添加自己的端

    2024年02月09日
    浏览(56)
  • 微服务动态权限管理方案(Spring Cloud Gateway+Spring Cloud Security)

    微服务认证方案的大体方向是统一在网关层面认证鉴权,微服务只负责业务,和鉴权完全隔离 整体包含以下四个角色 客户端 :需要访问微服务资源 网关 :负责转发、认证、鉴权 OAuth2.0授权服务 :负责认证授权颁发令牌 微服务集合 :提供资源的一系列服务。 这里的客户端

    2024年02月12日
    浏览(50)
  • 聊聊Spring Cloud Gateway

    网关概述 整体来看,网关有点类似于门面,所有的外部请求都会先经过网关这一层。 网关不仅只是做一个请求的转发及服务的整合,有了网关这个统一的入口之后,它还能提供以下功能。 针对所有请求进行统一鉴权、限流、熔断、日志。 协议转化。针对后端多种不同的协议

    2024年02月07日
    浏览(43)
  • Spring Cloud GateWay简介

    网关是一种充当转换重任的计算机系统或设备,使用在不同的通信协议、数据格式或语言,甚至网关是一种充当转换重任的计算机系统或设备,使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间进行数据传输. 网关具备转发, 路由和数据过滤的功

    2024年02月05日
    浏览(54)
  • spring cloud 之 gateway

    在微服务架构体系中,一个系统会被拆分为很多个微服务,那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别调用,当然这样是不现实的 Kong    基于Nginx+Lua开发,性能高,稳定,有多个可用的插件

    2024年02月12日
    浏览(37)
  • Spring Cloud Gateway学习

    传统的单体架构只有一个服务开放给客户端调用,但是在微服务架构体系中是将一个系统拆分成多个微服务,那么作为客户端如何去调用这些微服务呢?如果没有网关的存在,就只能在本地记录每个微服务的调用地址。 无网关的微服务架构存在的问题: 客户端多次请求不同

    2024年02月07日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包