(Eclipseを使用)
サードパーティが提供するJARのクラスを使用しています。サードパーティの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にアクセスするために、Eclipseプロジェクトのフォルダーに貼り付けてから、JARをビルドパスとデプロイメントアセンブリに追加していました。
ただし、2つの異なるデプロイメントでこのサードパーティのjarから初期化されたオブジェクトの同じインスタンスを使用する必要があるため、サードパーティのJARをJBossAS7「モジュール」に移動することが決定されました。
ビルドパス内のプロジェクトでJARへの参照を維持しましたが、デプロイメントアセンブリから削除しました。また、「依存関係: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.be()への参照が見つかりません。
以前はこれがどのように機能していましたが、JBossモジュールに変換すると機能しなくなりましたか?
また、どうすればこの問題を解決できますか?