国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

解決Java執行過程中拋簽名異常的問題

goji / 1990人閱讀

摘要:最近某工程啟動中拋出了一個詭異的問題堆棧比較長主要原因是經發現是由于這個包中的眾多類在多個包中均有實現比如和都有實現如果該進程加載時使用了中的又加載了中的同時和的簽名不一致這樣會導致以上報錯在中查找類發現在多個帶或者名字的包中均有實現可以通

最近某Java工程啟動中拋出了一個詭異的問題, 堆棧比較長, 主要原因是:

java.lang.SecurityException: class "javax.servlet.AsyncListener""s signer information does not match signer information of other classes in the same package

經Google, 發現是由于javax.servlet這個包中的眾多類, 在多個Jar包中均有實現(比如X和Y都有實現), 如果該Java進程加載時, 使用了X.jar中的javax.servlet.A, 又加載了Y.jar中的javax.servlet.B, 同時X.jar和Y.jar的簽名不一致, 這樣會導致以上報錯.

在IDE中查找類javax.servlet.AsyncListener, 發現在多個帶javaee或者servlet名字的jar包中均有實現, 可以通過以下命令獲取工程的所有依賴:

mvn dependency:tree

為了定位是哪個Jar包導致的該問題, 我們在實現了這個類的Jar包中, 進行簽名檢查:

jarsigner -verify xxx.jar

通過這個命令可以看到該Jar是否有簽名.

最后發現, 這些Jar包中, 只有一個有簽名, 而其他都沒有:

org.eclipse.jetty.orbit:javax.servlet:jar:3.0.0.v201112011016:compile

所以可以推斷應該是這個eclipse對servlet的實現的Jar包使用了簽名, 導致和其他相關Jar包不兼容. (是有多喜歡造輪子)

而這個Jar包, 通過依賴樹, 我們發現是hive-jdbc 2.3.2依賴引入的(看著hive依賴真混亂..., 記得hbase也是), 通過升級到 3.1.0, 再次檢查依賴, 我們發現這個Jar包已經不在依賴樹中了. 而啟動錯誤也消失了.

或者還有另外一個方法, 把這個有問題的包從hive-jdbc 2.3.2 中exlucde掉, 讓hive使用其他包中的javax.servlet實現. 其實即便沒有其他包有javax.servlet的實現, 或者其scope為provided, 只要這個工程在tomcat中啟動, 都是可以的. 因為tomcat自帶servlet-api實現.

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71969.html

相關文章

  • java異常處理

    摘要:異常處理機制異常與異常類的繼承體系在程序中,當程序出現意外情況時,系統會自動生成一個來通知程序,從異常發生出逐漸向外傳播,如果沒有人來處理該異常,就會交給來處理,對異常的處理方法是,打印異常跟蹤棧信息,并中止程序的執行。 1 為什么要處理異常? 異常機制可以使程序的異常處理代碼與正常業務代碼分離,保證程序代碼的健壯性。在設計程序的時候,好的程序需要盡可能處理已知的可能產生的錯誤,但是事...

    LuDongWei 評論0 收藏0
  • 兩個月Java實習結束,繼續努力

    摘要:花了將近兩個星期完成了功能,期間我編寫的能力也算是有所提升了。所以能看到這篇文章的同學都是大佬如果想看更多的原創技術文章,歡迎大家關注我的微信公眾號。可能感興趣的鏈接文章的目錄導航微信公眾號端文章的目錄導航端海量精美腦圖 前言 只有光頭才能變強 2018年8月30日,今天我辭職了。在6月25號入職,到現在也有兩個月時間了。 感受: 第一天是期待的:第一次將項目拉到本地上看的時候,代碼...

    snifes 評論0 收藏0
  • #Java異常處理

    摘要:例子二以下開始用異常處理機制捕獲該異常在這里,這個其實就是這里用到了程序運行時的多態思想。語句就像一個調用函數,當程序運行中拋出了一個異常對象,就會調用對應的來處理。 傳統的語言如何處理 在一些傳統的語言(如C語言中) if語句來判斷是否出現了例外 全程變量ErrNo 但這有幾個缺點 正常處理與異常處理的代碼同樣處理 可讀性(readability)差 每次調用一個方法時都進行錯...

    nidaye 評論0 收藏0
  • Java異常處理

    摘要:可以被異常處理機制使用,是異常處理的核心。非檢測異常,在編譯時,不會提示和發現異常的存在,不強制要求程序員處理這樣的異常。總體來說,語言的異常處理流程,從程序中獲取異常信息。處理運行時異常,采用邏輯合理規避同時輔助處理。 目錄 什么是Java異常? 當一個Exception在程序中發生的時候,JVM是怎么做的呢? 當我們編寫程序的時候如何對待可能出現的異常呢? 正文 1. 什么是J...

    Fourierr 評論0 收藏0
  • Java 異常處理 9 個最佳實踐

    摘要:異常處理的個最佳實踐原文地址翻譯出處在中,異常處理是個很麻煩的事情。使用描述性消息拋出異常這個最佳實踐背后的想法與前兩個類似。當你以錯誤的格式提供時,它將被類的構造函數拋出。類提供了特殊的構造函數方法,它接受一個作為參數。 Java 異常處理的 9 個最佳實踐 原文地址:https://dzone.com/articles/9-...翻譯出處:https://www.oschina.n...

    sihai 評論0 收藏0

發表評論

0條評論

goji

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<