若依微服务部署中遇到的各种问题


来源于:https://www.jianshu.com/p/3253732d02ac

1、部署完nacos,启动RuoYiSystemApplication时,报数据信息不存在

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
【分析】从现象看,是没读取到数据库url,即没有读取到配置文件。由于第一使用nacos配置中心,也不知道是我的配置文件命名错误还是其他什么问题。将配置文件直接写入bootstrap.yml中依然报错,排除nacos配置文件命名问题。
备注:Data ID 的完整规则格式如下
{prefix}-{spring.profiles.active}.{file-extension}
prefix是spring.application.name,这里为ruoyi-system,结合active=dev,配置DataID为ruoyi-system-dev.yml没有问题。
后来发现是配置文件中,将数据库配置写到master下了,这是从其他一个多数据源工程中拷贝下来的。删除master后可以正常访问了。

spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            url: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
            username: root
            password: password
            # 初始连接数
            initialSize: 5
            # 最小连接池数量
            minIdle: 10
            # 最大连接池数量
            maxActive: 20
            # 配置获取连接等待超时的时间
            maxWait: 60000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            # 配置一个连接在池中最大生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis: 900000

2、启动时报Invalid bound statement (not found)

经查公共配置文件application-dev.yml将mybatis配置成了mybatis-plus

mybatis: mapper-locations: classpath*:/mapper/**/*Mapper.xml #实体扫描,多个package用逗号或者分号分隔 typeAliasesPackage: com.ruoyi.**.domain 
 
image.png

3、认证中心启动报错

Failed to bind properties under 'spring.datasource.type' to java.lang.Class<javax.sql.DataSource>:
解决方法,添加依赖

<!--阿里数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.4</version> </dependency> 

4、登录时登录接口dev-api/auth/login报404 NOT_FOUND

启动了RuoYiGatewayApplication、RuoYiAuthApplication、RuoYiSystemApplication三个服务,报404说明网关没有注册。
【解决方案】在网关工程的yml文件中添加

# 权限模块
            - id: ruoyi-auth uri: http://localhost:9200/ predicates: - Path=/auth/** filters: - StripPrefix=1 
 
image.png

5、登录接口dev-api/auth/login报“令牌不能为空”

Gateway有很多的全局过滤器GlobalFilter,若依自定义了一个全局过滤器AuthFilter
其中设置了过滤白名单。

# 不校验白名单
ignore:
  whites:
    - /auth/logout
    - /auth/login
    - /*/v2/api-docs
    - /csrf

写到最外层就可以了,如图。


 
image.png


作者:夜色001
链接:https://www.jianshu.com/p/3253732d02ac
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM