作者kogrs (kogrs)
看板java
標題Re: [問題] jni與Tomcat整合的問題
時間Mon Aug 30 23:39:56 2010
若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
→ flowwinds:感謝..的確有crash error log, 不過trace到後來是動態 08/31 19:56
→ flowwinds:載入dll的function呼叫那行出問題 08/31 19:58
→ flowwinds:講錯, 是呼叫dll中的function那行 08/31 20:01
→ flowwinds:已經解掉了, 根據error log, 把tomcat的stack加大就行了 09/01 18:35