0

私のアプリケーションでは、Jnetpcapネイティブ ライブラリを使用しています。ネイティブ ライブラリはstatic、それ自体のブロックを使用して読み込まれjarます。

起動後にアプリケーションを新たにロードするとJBOSS、正常に動作します。

再起動せずに再デプロイを行うJBOSSと、アプリケーションはライブラリを登録できず、UnsatisfiedLinkError.

ここでも、JBOSS を再起動すると正常に動作します。

JBoss バージョン: JBoss EAP 6.2.0.GA

ライブラリは、Windows ではクラスパス、Linux では \usr\lib にあります。

スタックトレース:

01:41:48,829 ERROR [org.springframework.batch.core.step.AbstractStep] (pool-6-thread-1) ステップの実行中にエラーが発生しました: java.lang.UnsatisfiedLinkError: com.slytechs.library.NativeLibrary.dlopen (Ljava/lang/String;)J at com.slytechs.library.NativeLibrary.dlopen(Native Method) [jnetpcap-1.4.r1425.jar:1.4.r1425] at com.slytechs.library.NativeLibrary.(Unknown Source) [ jnetpcap-1.4.r1425.jar:1.4.r1425] com.slytechs.library.JNILibrary で。出典) [jnetpcap-1.4.r1425.jar:1.4.r1425] at com.slytechs.library.JNILibrary.register(出典不明) [jnetpcap-1.4.r1425.jar:1.4.r1425] at com.slytechs.library.JNILibrary .register(不明なソース) [jnetpcap-1.4.r1425.jar:1.4.r1425] com.slytechs.library.JNILibrary.register(不明なソース) [jnetpcap-1.4.r1425.jar:1.4.r1425] org.jnetpcap.Pcap.(不明なソース) [jnetpcap-1.4.r1425.jar:1.4.r1425]

4

1 に答える 1

1

あなたが抱えている問題は、ネイティブ ライブラリが、現在は機能していない展開によって以前に読み込まれており、2 回目に読み込むことができないことです。

JBoss EAP (Wildfly) でこの問題を回避するには、ネイティブ コードをロードするモジュールを作成します。アプリケーションの残りの部分 (war または ear ファイル内) は、モジュールへの依存関係を文書化し、一度だけロードされます。

于 2016-09-29T22:41:54.900 に答える