2012-05-27 3 views
3

Как загрузить общую библиотеку в Tomcat6 на Ubuntu?Загрузка общей библиотеки в Tomcat на Ubuntu

Я создал библиотеку «awragrids» с именем «libawragrids.so» и поместил его в

/var/lib/tomcat6/shared 

Я установил следующие переменные окружения в терминале, из которого я зову начать кот:

export PATH=$PATH:/var/lib/tomcat6/shared 
export JAVA_OPTS="-Djava.library.path=/var/lib/tomcat6/shared" 
export LD_LIBRARY_PATH=/var/lib/tomcat6/shared 

затем я пытаюсь загрузить библиотеку с

private static final String GRIDTOOL_LIBRARY_NAME = "awratools"; 

static { 
    try { 
     System.loadLibrary(GRIDTOOL_LIBRARY_NAME); 
    } catch (java.lang.SecurityException e) { 
     System.out.println("Not allowed to load dynamic library " + GRIDTOOL_LIBRARY_NAME + "."); 
     throw e; 
    } catch (java.lang.UnsatisfiedLinkError e) { 
     System.out.println("Failed to load dynamic library " + GRIDTOOL_LIBRARY_NAME + "."); 
     throw e; 
    } 
} 

и ветер во второй блок блокировки. Все чтение, которое я сделал, предполагает, что любой из первых двух экспонатов должен сделать трюк. В Windows я помещаю «awragrids.dll» в папку на пути, и он отлично работает.

Я провел пути слишком много времени на этом и действительно нужно немного поспать ... пожалуйста, помогите!

+0

Является ли общая библиотека зависимой от какой-либо другой библиотеки под Linux, что она не нужна в Windows? –

+1

Вы используете tomcat через скрипт bash/init? может не работать как один и тот же пользователь –

+0

guido - я заменил на root, чтобы запустить скрипт (я использовал sudo, но думал, что переменные окружения могут быть недоступны ... что я думаю, что вы предлагаете?) –

ответ

0

Убедитесь, что сценарий запуска Tomcat - catalina.sh в /var/lib/tomcat6/bin - фактически использует JAVA_OPTS из среды. В сценарии в системе, на которой я сейчас смотрю, кто-то поставил полное определение, не затрагивая настройки среды.

+0

Это довольно свежая виртуальная машина (в VirtualBox). Оба /usr/share/tomcat6/bin/catalina.sh и /etc/init.d/tomcat6 просто передают значения JAVA_OPTS. –

0

Я думаю, что это, возможно, была ошибкой с моей стороны. Когда я первоначально собирал библиотеку, она имела другое название («libawargrids.so»), так что я переименовал его:

mv libawragrids.so libawratools.so 

В то время как эквивалент, кажется, работает на Windows, возможно, не работает на Linux , Когда я скомпилировал его снова, используя имя «awratools» (создав «libawratools.so»), проблема исчезла.

Хотя проблема теперь исправлена, если кто-то может подтвердить, что переименование, вероятно, вызвало это (и, возможно, объяснить, почему), который был бы оценен

Извините за тратить время народов, но спасибо за помощь

PS Я теперь размещены строки:.!

export JAVA_OPTS="-Djava.library.path=/var/lib/tomcat7/shared" 
export LD_LIBRARY_PATH=/var/lib/tomcat7/shared 

в верхней части/и т.д./init.d/tomcat6, поэтому не имеет значения, какое использование r запускает сервис. Пожалуйста, дайте мне знать, если это по какой-то причине плохо.

Смежные вопросы