ruoyi-cloud整合knife4j过程gateway服务启动失败

作者使用的是springdoc方式,ruoyi-cloud版本3.6.6
若依官方步骤链接


前提:跟着官方文档过了一遍启动gateway服务失败

依据官方文档,将ruoyi-common-swagger依赖资源引入进下图服务


问题1:ruoyi-gateway模块依赖了 ​​pro.fessional:kaptcha:2.3.3​​(一个验证码库),而这个库又​​传递性地依赖​​了陈旧的 ​​javax.servlet:servlet-api:2.5​

解决方案:

  1. 在 ruoyi-gateway模块的 pom.xml文件中,在 kaptcha的依赖项中​​排除​​掉陈旧的 servlet-api。
<!--验证码 -->
        <dependency>
            <groupId>pro.fessional</groupId>
            <artifactId>kaptcha</artifactId>
            <version>2.3.3</version>
            <!-- 确保以下 exclusions 块已添加 -->
            <exclusions>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

问题2:Spring MVC found on classpath 错误

其根本原因是 ​​Spring Cloud Gateway 基于 WebFlux(响应式、非阻塞)​​,而 ​​spring-boot-starter-web 基于 Spring MVC(Servlet、阻塞式)​​,两者是​​完全不同且互不兼容​​的技术栈,无法在同一个应用中共存。

解决方案:

  1. 找到gateway服务下的pom.xml文件中的RuoYi Common Redis依赖,替换如下:
<!-- RuoYi Common Redis-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common-redis</artifactId>
            <!-- 添加 exclusions 块,排除 spring-boot-starter-web -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-web</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
  1. 修改gateway服务下的bootstrap.yml
    在这里插入图片描述

最后

终端执行mvn clean compile命令然后重新启动gateway服务即可
接口文档地址:http://{ip}:{port}/doc.html

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐