異常解決java.io.IOException: invalid constant type: 15

執筆記憶的空白發表於2017-10-31

最近一個專案測試的時候,需要進行多個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的依賴。   具體如下:

	<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。 解決!









相關文章