BUG戰役之路-後臺報錯:javax/management/j2ee/statistics/Stats

這裏是引用

  • 在使用SpringJMS時,引入相應的jms依賴後,編譯時正常,通過maven插件在tomcat運行時卻報這個錯。
  • 網上不外乎三種解決方案,我都做了嘗試

方案1:添加j2ee依賴

<dependency> 
  <groupId>javax</groupId>
  <artifactId>j2ee</artifactId>
  <version>1.4</version>
</dependency>

首先,這個包在maven的官方庫裏是沒有的,廢了很大的勁,才下了個,並導入到了本地的maven庫,添加到項目裏
然後又報這個錯:
在這裏插入圖片描述
在這裏插入圖片描述

經過分析,原因是j2ee-1.4.jar下的包(javax/servlet/ServletContext)和web容器(tomcat)的包重複了,所以類加載失敗。前者這個jar包jms需要調用,所以,也不可能不引人或者在引入的地方加<scope> provided </scope>。後者是容器指定加載的,我不打算侵入容器內部,怕造成其他問題。所以結果就是,這條路暫時走不通了。

方案2:更換Web容器

我反正更換了很多版本,都不行,又折騰了很久

方案3:更改JDK版本

網上的意思說是JDK版本不對,也就是說,正確的JDK版本本來就應該包含這個缺少的包,就不會報錯。我覺得也有道理,本來這種底層的東西,就應該是環境自帶的,於是乎,我又試了很多不同的JDK版本。結果都報同樣的錯。極度無語

折騰了許久,事情好像走上了死衚衕。最後從頭開始,反覆的思考問題產生的原因,突然發現還有個方案:

最終解決方案:改官方的jar包

以前有種思維定式,總認爲官方的jar包不能改,會破壞穩定性,但既然我能明確影響的範圍,爲什麼就不能改?
於是,到j2ee-1.4.jar下,將如下路徑的包刪除:
在這裏插入圖片描述

更新maven,項目正常啓動

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章