Re: [問題] jni與Tomcat整合的問題

看板java作者 (kogrs)時間14年前 (2010/08/30 23:39), 編輯推噓0(004)
留言4則, 1人參與, 最新討論串3/3 (看更多)
若tomcat裡的webapp會用到jni 建議請把有jni的class包成單獨的jar檔放在 shared/lib 下 這樣才不會 app reload 時造成 dll 重覆載入 在來就是dll所在的目錄 加到 windows 的 PATH 環境變數下 然後 你跑了一跑就掛掉,表示發生了 access violation,造成整個tomcat crash 可以找找應該會有 hs_err_pidxxxxxxx.log的 log file 先用 standalone 的方式把jni 這邊測好 ※ 引述《flowwinds (..)》之銘言: : 大家好.. : 我把一個含有native method 的class 包成 war 放到 Tomcat上要提供web service : (使用 CXF 2.2.10) : 不過client去連的時候出現exception, 而且這個service就自己關掉了 : 我覺得是 JNI 跟 Tomcat整合的問題, 不過還是不清楚如何處理 : 以下是我的測試: : 1. 我用程式啟動這個CXF service, client連的上且結果正確 : 所以我判斷是JNI Tomcat整合的問題 : 2. 這個含有native method class 比較特殊的是, native method 所用到的 : C code 會動態載入 2個 dll (用windows.h的LoadLibrary),呼叫 dll裡面的function : 之前有測試過其他的native method, C code中只使用 printf不載入其他dll : 這樣的話放到Tomcat上可以被client正常的呼叫, 所以問題可能是出在這 : 有人有遇過同樣問題, 或者知道如何處理的嗎? : 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.155.181.29

08/31 19:56, , 1F
感謝..的確有crash error log, 不過trace到後來是動態
08/31 19:56, 1F

08/31 19:58, , 2F
載入dll的function呼叫那行出問題
08/31 19:58, 2F

08/31 20:01, , 3F
講錯, 是呼叫dll中的function那行
08/31 20:01, 3F

09/01 18:35, , 4F
已經解掉了, 根據error log, 把tomcat的stack加大就行了
09/01 18:35, 4F
文章代碼(AID): #1CUz3FR2 (java)
文章代碼(AID): #1CUz3FR2 (java)