dubbo啟動報錯,反射例項化問題
1、問題背景:
在dubbo啟動的過程中報錯誤:java.lang.ClassNotFoundException: javassist.ClassPath
,除錯發現程式碼:Class<?> clazz = Class.forName(line, true, classLoader)執行載入類com.alibaba.dubbo.common.compiler.support.JavassistCompiler
時報:java.lang.NoClassDefFoundError: javassist/ClassPath
,這個錯誤最後被加工最終變成上邊的錯誤。可是檢視專案下發現依賴的包javassist-3.18.1-GA.jar
命名存在,開啟這些jar包,其中的javassist.ClassPath
的確存在啊,於是我換了個版本javassist-3.18.2-GA.jar
程式跑起來了。那麼到底是怎麼回事呢?
2、出現原因:
其實就是因為JavassistCompile使用了類javassist.ClassPath
。經過一點點的比較,最後發現 javassist-3.18.1-GA.jar
這個包是有問題的,因為其MAINFEST.FM檔案是打不開的,解壓以後也報各種Class檔案格式錯誤,看來應該是這個問題了,時間緊張也不打算深入驗證了,總之當大家出現這種問題時,也算是一種可能問題吧,希望能為大家解決問題提供線索。
3、解決方法:
引入相關pom依賴:
<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.15.0-GA</version>
</dependency>
相關文章
- 啟動ASM 例項報錯ASM
- dubbo請求報文例項
- COM+元件啟動報錯問題處理元件
- RAC環境啟動單例項報錯ORA-1105單例
- 11.2單例項ASM啟動報錯ORA-15186單例ASM
- 解決MMM啟動監控報錯的問題
- ASM例項啟動報錯:ORA-29701 :unable to connect to Cluster ManagerASM
- Redis 3.2.1從庫啟動報錯"Error condition on socket for SYNC"問題解決一例RedisError
- oracle 10203啟動例項報警Oracle
- Vagrant 啟動 VirtualBox 的問題 ( 誤裝 docker 後報錯 )Docker
- 講一個linux服務啟動報錯問題排查Linux
- Oracle RAC啟動CRS報錯:登陸許可權問題Oracle
- keepalived啟動報錯解決一例
- RAC環境單例項啟動資料庫收到ORA-29702報錯單例資料庫
- mysql例項停止、啟動、配置遠端訪問MySql
- 單例項物件動態裝載問題?單例物件
- java反射方式建立例項Java反射
- 啟動ASM例項出現ORA-29701錯誤ASM
- JdonFramework 5.1例項問題?Framework
- 對於物件的動態建立例項問題物件
- 11.2.0.3 例項啟動報大記憶體頁資訊記憶體
- 使用SRVCTL啟動例項與使用sqlplus啟動例項的區別SQL
- mongodb 啟動報錯MongoDB
- php啟動報錯PHP
- 2 Day DBA-管理Oracle例項-關於例項的啟動和關閉-關於例項啟動Oracle
- 啟動CRS單例項、設定自動啟動單例
- 3.1.5.9 啟動遠端例項
- 水煮oracle24---- oracle em 啟動報錯 相關問題解決Oracle
- C#利用反射建立例項C#反射
- 自動重新啟動oracle例項 for windowsOracleWindows
- iOS自動化測試的那些乾貨:關於appium啟動報錯問題的解決辦法iOSAPP
- 介面自動化報告的問題
- 2 Day DBA-管理Oracle例項-關閉和啟動Oracle例項-使用OEMDC關閉和啟動Oracle例項Oracle
- Dubbo原始碼分析(一)Dubbo與Spring整合例項原始碼Spring
- Dubbo 程式設計之夏報名啟動了程式設計
- myeclipse啟動報錯Eclipse
- SpringBoot+Dubbo+Zookeeper 例項Spring Boot
- spring+zookeeper+dubbo使用例項Spring