最近一個項目測試的時候,需要進行多個tomcat
集群測試。 我本地用了一個新的tomcat
, 然后把項目打好的war
包扔到tomcat
里面進行運行。 啟動時出現一個異常:java.io.ioexception: invalid constant type: 15
。
項目啟動環境:jdk1.8
、tomcat8
網上查閱資料,說是引用dubbo 2.8
版本時,自動引用了javassist 3.15.0
版本。 導致和jdk
的javassist
沖突。 查看maven
的pom.xml
文件,有引入javassist 3.21.0
版本。 但是并沒有3.15.0版本。
解決步驟:
一、輸出maven依賴的樹,并輸出日志到指定文件
然后在項目的pom.xml
文件目錄,打開cmd
環境, 執行命令 mvn dependency:tree>2.txt
二、查看2.txt文件,看到項目所有的jar的依賴樹。
里面就包括了dubbo
里面引用了javassist 3.15.0
具體操作如下圖:
然后就到依賴dubbo
的maven
配置那里,排除javassist
的依賴。 具體如下:
1
2
3
4
5
6
7
8
|
<dependency> <groupid>com.alibaba</groupid> <artifactid>dubbo</artifactid> <version> 2.8 . 4 </version> <exclusions> <exclusion><artifactid>javassist</artifactid><groupid>org.javassist</groupid></exclusion> </exclusions> </dependency> |
這里大家自己的格式是什么樣的就自己格式化一下。然后重新編譯,更新下maven
。 問題解決。(其他jar
依賴沖突的問題也可以這樣分析解決)
如果這樣配置了還沒解決。去看下2.txt文件還有沒有其他關于javassist
的依賴。一并去除。 另外就是找到你所依賴的項目的本地倉庫,找到依賴項目的版本,清除,重新install
。 解決!
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接