若依微服務部署中遇到的各種問題


來源於: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