|
|
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Привет All. Написал на java вызов сишной функции из DLL. Если запустить вызов из консоли (java My.class) Все работает на ура. Решил прикрутить к WebSphere Завернул все в jar. В ответ получил в логах WS след ошибку: java.lang.UnsatisfiedLinkError: gethash где gethash это метод класса с вызовом функции из DLL По всей видимости загрузка библиотеки проходит нормально, почемуто не проходит вызов метода, хотя при отладки вызов работал на ура. Может кто подскажет куда глянуть? Сам класс public class getstringhash { private native String gethash(String str); static { System.loadLibrary("jcommon"); } public String getHashStr(String str) { return gethash(str); } } И вызов public String GetUserHash(String userName, String password) throws SQLException { getstringhash hash = new getstringhash(); return hash.getHashStr("Строка"); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 14:09:34 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Pavel333Привет All. Написал на java вызов сишной функции из DLL. Если запустить вызов из консоли (java My.class) Все работает на ура. Решил прикрутить к WebSphere Завернул все в jar. Проблемма в том что WebSphere использует загрузчик клсассов у Sun была статья на эту тему. Как вывод или ты долже ложить свой класс в WebSphere или не использовать JNI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 16:31:45 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
http://rsdn.ru/Forum/?mid=2561870 А у WAS прописал java.libarary.path? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 16:45:33 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Да прописан. Библиотека лежит в C:\WINNT\system32 Вот лог WS Host Operating System is Windows 2000, version 5.0 Java version = J2RE 1.4.2 IBM Windows 32 build cn142sr1w-20041028 (JIT enabled: jitc), Java Compiler = jitc, Java VM name = Classic VM was.install.root = C:\IBM\WebSphere\AppServer user.install.root = C:\IBM\WebSphere\AppServer/profiles/AppSrv01 Java Home = C:\IBM\WebSphere\AppServer\java\jre ws.ext.dirs = C:\IBM\WebSphere\AppServer\java\lib;C:\IBM\WebSphere\AppServer\classes;C:\IBM\WebSphere\AppServer\lib;C:\IBM\WebSphere\AppServer\installedChannels;C:\IBM\WebSphere\AppServer\lib\ext;C:\IBM\WebSphere\AppServer\web\help;C:\IBM\WebSphere\AppServer\deploytool\itp\plugins\com.ibm.etools.ejbdeploy\runtime Classpath = C:\IBM\WebSphere\AppServer/profiles/AppSrv01\properties;C:\IBM\WebSphere\AppServer\properties;C:\IBM\WebSphere\AppServer\lib\bootstrap.jar;C:\IBM\WebSphere\AppServer\lib\j2ee.jar;C:\IBM\WebSphere\AppServer\lib\lmproxy.jar;C:\IBM\WebSphere\AppServer\lib\urlprotocols.jar Java Library path = C:\IBM\WebSphere\AppServer\java\bin;.;C:\WINNT\system32;C:\WINNT;C:\IBM\WebSphere\AppServer\bin;C:\IBM\WebSphere\AppServer\java\bin;C:\IBM\WebSphere\AppServer\java\jre\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem Current trace specification = *=info ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 16:53:25 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Евгений. А можно по подробний, или хотябы ссылку на статью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 16:56:12 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Че там искать JNI and classloader > JNI Enhancements Introduced in version 1.2 of the JavaTM 2 SDK авторIn the Java 2 SDK, each class loader manages its own set of native libraries. The same JNI native library cannot be loaded into more than one class loader . Doing so causes UnsatisfiedLinkError to be thrown. For example, System.loadLibrary throws an UnsatisfiedLinkError when used to load a native library into two class loaders ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 17:05:08 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо за сылки. Итак насколько я понял необходимо излавчится чтобы использовать только один класс, так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 17:20:34 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Pavel333Blazkowicz, спасибо за сылки. Итак насколько я понял необходимо излавчится чтобы использовать только один класс, так? Нет конечно. Нужно подложить свой класс в classpath с которым стартует WAS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 17:41:06 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Тоесть положить свой jar в jre\lib\ext насколько я помню все что там лежит автом попадает classpath? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 18:07:33 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
На Tue, 10 Jul 07 15:07:33 GMT "Pavel333" <nospam@sql.ru> записано: > Автор: Pavel333 > Тоесть положить свой jar в jre\lib\ext насколько я помню все что там > лежит автом попадает classpath? Тема Ответить Сообщение > туда ниче ложить не стоит Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 18:15:27 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Pavel333Тоесть положить свой jar в jre\lib\ext насколько я помню все что там лежит автом попадает classpath? http://www.jguru.com/faq/view.jsp?EID=463927 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 18:29:25 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Да, но я всегда туда и подкладывал свой jar в X:\WebSphere\AppServer\lib, результат см выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 18:41:03 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Так и немогу никак решить проблему. Выеснил что ошибка возникает при вызове метода который из DLL, при этом библиотека загружается в память. Может есть кикиенибуть предложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2007, 05:36:45 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
1. полный стек трейс 2. сравни classloader для своего класса и какого нибудь WAS'овского 3. выведи урл до файла из которого загрузился твой класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2007, 12:27:24 |
|
||
|
Вопрос про JNI
|
|||
|---|---|---|---|
|
#18+
Всем спасибо. Ларчик просто открывался, тестировал я клас без пакета, а когда выкладывал на WS завернул в пакет, поэтому в С-шной функции нужно было прописать пакет. Прописал и все заработало. Век живи, век учись :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2007, 15:36:40 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34651430&tid=2145199]: |
0ms |
get settings: |
16ms |
get forum list: |
25ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
57ms |
get topic data: |
19ms |
get forum data: |
4ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 315ms |
| total: | 529ms |

| 0 / 0 |
