首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Dubbo Admin 2.5.3 啟動報錯「Bean property 'URIType' not writable」:JDK 版本不兼容解決方案

     編輯:Java 綜合教學

Dubbo Admin 2.5.3 啟動報錯「Bean property 'URIType' not writable」:JDK 版本不兼容解決方案

Dubbo Admin 2.5.3 基於較老的 Spring 版本構建,與 JDK 1.8 存在兼容性問題,啟動時拋出 Bean property 'URIType' is not writable or has an invalid setter method。根因在於 JDK 1.8 對某些 Bean 属性描述符的處理變更導致 Spring 綁定失敗。

一、快速解決:強制 Tomcat 使用 JDK 1.7

修改 Tomcat bin/ 目錄下兩個腳本,將 JAVA_HOME 指向 JDK 1.7 安裝路徑(如 D:\Java\jdk1.7.0_79)。

1. catalina.bat / catalina.sh

rem 原內容
echo Using JAVA_HOME: %JAVA_HOME%

rem 修改為具體路徑
echo Using JAVA_HOME: D:\Java\jdk1.7.0_79

2. setclasspath.bat / setclasspath.sh

rem 原內容
set _RUNJAVA="%JAVA_HOME%\bin\java"
set _RUNJAVAW="%JAVA_HOME%\bin\javaw"
set _RUNJDB="%JAVA_HOME%\bin\jdb"
set _RUNJAVAC="%JAVA_HOME%\bin\javac"

rem 修改為具體路徑(.exe 後綴)
set _RUNJAVA="D:\Java\jdk1.7.0_79\bin\java.exe"
set _RUNJDB="D:\Java\jdk1.7.0_79\bin\jdb.exe"
rem _RUNJAVAW、_RUNJAVAC 同理

保存後執行 startup.bat,控制台輸出 Server startup in xxx ms 表示成功。

INFO context.InheritableListableBeanFactory - Pre-instantiating singletons ...
INFO velocity.VelocityEngine - SpringResourceLoaderAdapter : initialization complete.
INFO servlet.WebxFrameworkFilter - WebxFrameworkFilter - webx: initialization completed
二月 21, 2016 8:43:23 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 32782 ms

Dubbo Admin 控制台登錄頁

二、替代方案(不降級 JDK)

  • 升級 Dubbo Admin:使用 2.6.0+ 版本(支援 JDK 1.8),或遷移至 Apache Dubbo Admin(現代化重寫版)。
  • 修改 Spring 配置:排除有問題的 Bean 定義,或手動註冊 URIType 轉換器(需深入源碼調試)。
  • 使用 Docker:拉取預構建鏡像 docker pull apache/dubbo-admin:2.6.0,隔離 JDK 環境。

三、附錄:Dubbo XSD 文件解析報錯解決

專案中引用 https://code.alibabatech.com/schema/dubbo/dubbo.xsd 導致啟動失敗,提示無法讀取 schema 文檔。

XSD 解析錯誤

原因:Spring 嘗試遠程下載 XSD,網路不通或域名失效。

解決:將 XSD 文件下載至本地 src/main/resources/META-INF/schemas/,並在 spring.schemas 映射:

# spring.schemas
http\://code.alibabatech.com/schema/dubbo/dubbo.xsd=META-INF/schemas/dubbo.xsd

注意:XSD 文件存放路徑**不能包含點(.)或以連字符(-)開頭的目錄**,否則 Spring 資源解析器會報錯。

路徑命名限制錯誤

參考:Spring 本地化 XSD 解析原理
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved