Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос про JNI / 15 сообщений из 15, страница 1 из 1
10.07.2007, 14:09:34
    #34650337
Pavel333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Привет 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("Строка");
}
...
Рейтинг: 0 / 0
10.07.2007, 16:31:45
    #34650895
Евгений Путилин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Pavel333Привет All.
Написал на java вызов сишной функции из DLL. Если запустить вызов из консоли (java My.class) Все работает на ура. Решил прикрутить к WebSphere Завернул все в jar.

Проблемма в том что WebSphere использует загрузчик клсассов у Sun была статья на эту тему. Как вывод или ты долже ложить свой класс в WebSphere или не использовать JNI
...
Рейтинг: 0 / 0
10.07.2007, 16:45:33
    #34650938
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
http://rsdn.ru/Forum/?mid=2561870
А у WAS прописал java.libarary.path?
...
Рейтинг: 0 / 0
10.07.2007, 16:53:25
    #34650973
Pavel333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Да прописан. Библиотека лежит в 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
...
Рейтинг: 0 / 0
10.07.2007, 16:56:12
    #34650988
Pavel333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Евгений. А можно по подробний, или хотябы ссылку на статью.
...
Рейтинг: 0 / 0
10.07.2007, 17:05:08
    #34651017
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Че там искать
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
...
Рейтинг: 0 / 0
10.07.2007, 17:20:34
    #34651105
Pavel333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Blazkowicz, спасибо за сылки.
Итак насколько я понял необходимо излавчится чтобы использовать только один класс, так?
...
Рейтинг: 0 / 0
10.07.2007, 17:41:06
    #34651227
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Pavel333Blazkowicz, спасибо за сылки.
Итак насколько я понял необходимо излавчится чтобы использовать только один класс, так?
Нет конечно. Нужно подложить свой класс в classpath с которым стартует WAS.
...
Рейтинг: 0 / 0
10.07.2007, 18:07:33
    #34651330
Pavel333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Тоесть положить свой jar в jre\lib\ext насколько я помню все что там лежит автом попадает classpath?
...
Рейтинг: 0 / 0
10.07.2007, 18:15:27
    #34651369
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
На 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
...
Рейтинг: 0 / 0
10.07.2007, 18:29:25
    #34651430
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Pavel333Тоесть положить свой jar в jre\lib\ext насколько я помню все что там лежит автом попадает classpath?
http://www.jguru.com/faq/view.jsp?EID=463927
...
Рейтинг: 0 / 0
10.07.2007, 18:41:03
    #34651472
Pavel333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Да, но я всегда туда и подкладывал свой jar в X:\WebSphere\AppServer\lib, результат см выше.
...
Рейтинг: 0 / 0
11.07.2007, 05:36:45
    #34652060
Pavel333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Так и немогу никак решить проблему. Выеснил что ошибка возникает при вызове метода который из DLL, при этом библиотека загружается в память. Может есть кикиенибуть предложения?
...
Рейтинг: 0 / 0
11.07.2007, 12:27:24
    #34652929
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
1. полный стек трейс
2. сравни classloader для своего класса и какого нибудь WAS'овского
3. выведи урл до файла из которого загрузился твой класс.
...
Рейтинг: 0 / 0
11.07.2007, 15:36:40
    #34653814
Pavel333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про JNI
Всем спасибо. Ларчик просто открывался, тестировал я клас без пакета, а когда выкладывал на WS завернул в пакет, поэтому в С-шной функции нужно было прописать пакет. Прописал и все заработало.
Век живи, век учись :))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос про JNI / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]