(使用Eclipse)java.lang.SecurityException異常:無法從第三方提供的JAR設置爲證書信任的CA(JBoss AS中7)
我使用的類。第三方JAR有一行:
var = Cipher.getInstance("AES");
當此行得到執行,這將引發以下堆棧跟蹤:
13:38:00,120 ERROR [stderr] (EJB default - 1) java.lang.ExceptionInInitializerError
13:38:00,121 ERROR [stderr] (EJB default - 1) at javax.crypto.Cipher.getInstance([DashoPro-V1.2-120198])
...
BLAH BLAH BLAH
(Stack trace which leads all the way down to the call I make through the third party jar)
...
13:38:00,154 ERROR [stderr] (EJB default - 1) Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs
13:38:00,154 ERROR [stderr] (EJB default - 1) at javax.crypto.b.<clinit>([DashoPro-V1.2-120198])
13:38:00,155 ERROR [stderr] (EJB default - 1) ... 55 more
以前,我通過將其粘貼到一個文件夾在我的日食訪問這個JAR項目,然後將JAR添加到我的構建路徑和部署程序集。
但是,因爲我們希望兩個不同的部署使用來自該第三方的jar初始化的對象相同情況下,決定將第三方JAR移動到一個JBoss AS 7「模塊」
我們在構建路徑中保留對項目中JAR的引用,但將其從部署組件中刪除。我還添加了一個「Dependencies:com ... [在模塊中指定的路徑]」
這似乎工作,因爲項目將構建和部署。
但是,每當我嘗試調用一個已被調用數十萬次的方法時,我就會得到這個異常。
在SunJCE_b.class的靜態初始化期間,異常似乎被拋出,但我不確定。
這裏是當時的堆棧第一拋出:SecurityException得到投擲:
b.e() line: not available
b.clinit() line: not available
Cipher.getInstance(String) line: not available
OtherCompanyCryptography.getCipherInstance() line: not available
我找不到javax.crypto.b.e任何引用()在線。
以前這是如何工作的,但是當我把它變成一個JBoss模塊時,它停止工作了?
另外,我該如何解決這個問題?
你能展示整個堆棧跟蹤嗎? – zacheusz 2013-06-21 17:45:56