作者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
1F:→ flowwinds:感谢..的确有crash error log, 不过trace到後来是动态 08/31 19:56
2F:→ flowwinds:载入dll的function呼叫那行出问题 08/31 19:58
3F:→ flowwinds:讲错, 是呼叫dll中的function那行 08/31 20:01
4F:→ flowwinds:已经解掉了, 根据error log, 把tomcat的stack加大就行了 09/01 18:35