Вызов C ++ из JMS с помощью JNI

Я пытаюсь вызвать Sleuth Kit C ++ Framework через JNI-оболочку из JMS MessageListener. Но я получаю эту ошибку

java.lang.UnsatisfiedLinkError: /tmp/libtsk_jni.so: libtsk.so.10: невозможно открыть общий объектный файл: нет такого файла или каталога

Я попытался скопировать libtsk_jni.so в / tmp, но без разницы.
Но я могу сделать это в консольном приложении Java. В чем может быть ошибка?

public void onMessage(Message message) {
try {
String imagePath = "uploads/Cfreds001A001.dd";
try{
SleuthkitCase sk = SleuthkitCase.newCase(imagePath + ".db");

} catch (TskCoreException ex) {

}
} catch (JMSException ex) {
Logger.getLogger(WorkerBean.class.getName()).log(Level.SEVERE, null, ex);
} catch (InterruptedException ex) {
Logger.getLogger(WorkerBean.class.getName()).log(Level.SEVERE, null, ex);
}

0

Решение

Попытка использовать собственные методы из кода, работающего в контейнере Java EE, не разрешена стандартом и может привести к неопределенному поведению. См. Статью JavaWorld от августа 2000 г. «Программирование ограничений на EJB», до сих пор верно сегодня, насколько я знаю.

В зависимости от вашего контейнера Java EE, вы на самом деле можете заставить это работать. Это может помочь поставить libtsk_jni.so в каталоге системной библиотеки или отредактировать скрипт запуска сервера, чтобы установить LD_LIBRARY_PATH переменная окружения.

1

Другие решения


По вопросам рекламы [email protected]