[英]Using Native Library in Spring With JBOSS
在我的應用程序中,我正在使用Jnetpcap
本機庫。 使用jar
本身中的static
塊加載本機庫。
啟動后將應用程序重新加載到JBOSS
時,它可以正常工作。
在不重新啟動JBOSS
情況下進行任何重新部署后,該應用程序將無法注冊該庫並拋出UnsatisfiedLinkError
。
同樣,如果我重新啟動JBOSS,它可以正常工作。
JBoss版本:JBoss EAP 6.2.0.GA
在Windows中,庫位於類路徑中;在Linux中,庫位於\\ usr \\ lib中。
堆棧跟蹤:
01:41:48,829錯誤[org.springframework.batch.core.step.AbstractStep](pool-6-thread-1)執行步驟時遇到錯誤:java.lang.UnsatisfiedLinkError:com.slytechs.library.NativeLibrary.dlopen (Ljava / lang / String;)J,位於com.slytechs.library.NativeLibrary.dlopen(本機方法)[jnetpcap-1.4.r1425.jar:1.4.r1425],位於com.slytechs.library.NativeLibrary。(未知源)[ com.slytechs.library.JNILibrary.jnetpcap-1.4.r1425.jar:1.4.r1425](未知源)com.slytechs.library.JNILibrary.loadLibrary(未知源)[jnetpcap-1.4.r1425.jar:1.4.r1425]來源)(com.slytechs.library.JNILibrary.register的[jnetpcap-1.4.r1425.jar:1.4.r1425](未知來源)com.slytechs.library.JNILibrary的[jnetpcap-1.4.r1425.jar:1.4.r1425] com.slytechs.library.JNILibrary.register(未知源)的.register(未知源)[jnetpcap-1.4.r1425.jar:1.4.r1425] org.jnetpcap的.register(未知源)[jnetpcap-1.4.r1425.jar:1.4.r1425] .Pcap(未知來源)[jnetpcap-1.4.r1425.jar:1.4.r1425]
您遇到的問題是,本機庫先前是由現已失效的部署先前加載的,無法再次加載。
使用JBoss EAP(Wildfly)解決此問題的方法是創建一個加載本機代碼的模塊。 您的應用程序的其余部分(在war或ear文件中)記錄了對該模塊的依賴關系,並且將僅加載一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.