конфигурация собственных библиотек в tomcat

#java #tomcat #jmagick

#java #tomcat #jmagick

Вопрос:

Я пытаюсь заставить библиотеку JMagick, работающую в Tomcat, выполнять перевод изображений после загрузки.

Magic поставляется в виде полу-заглушки library.jar архив и собственная библиотека libJMagick.so . Я использовал
System. LoadLibrary ("JMagick"); ,
но я получаю ошибки в catalina.out жалобах на невозможность найти библиотеку (подробности в конце этого сообщения). ключевое предложение, являющееся:

Вызвано: java.lang.RuntimeException: не удается загрузить MagickLoader (класс не найден) в magick.Волшебство.(Magick.java: 25)

Итак, куда я должен поместить библиотеки, в настоящее время они находятся в WEB-INF / lib, чтобы tomcat мог их использовать

Комментарии:

1. Их необходимо добавить в ваш путь к классу. Используйте это, чтобы увидеть, как это выглядит:

2. @Stefoan- можете ли вы опубликовать ссылку, на которую вы ссылаетесь?

Ответ №1:

Если ваш общий объект не установлен через диспетчер пакетов, поместите setenv.sh LD_LIBRARY_PATH=$CATALINA_BASE/lib:$LD_LIBRARY_PATH и скопируйте so в этот каталог lib.

Комментарии:

1. Я скопировал файлы .so в папку библиотеки моего tomcat и добавил LD_LIBRARY_PATH= $ CATALINA_BASE/lib:$ LD_LIBRARY_PATH в catalina.sh так как у меня нет setenv.sh . У меня это не работает. Та же ошибка, которую я получаю

2. Не изменяйте catalina.sh . Всегда вставляйте материал setenv.sh . Если этот файл не существует, создайте его bin и добавьте #!/bin/sh # $Id: setenv.sh 9504 2012-12-10 16:19:19Z osipovmi $ umask 022 LD_LIBRARY_PATH=»$CATALINA_HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH» экспортировать LD_LIBRARY_PATH.

3. Я создал setenv.sh в ячейке с содержимым #!/bin/sh # $Id: setenv.sh 9504 2012-12-10 16:19:19Z osipovmi $ umask 022 LD_LIBRARY_PATH=»$CATALINA_HOME/lib:/opt/jmagick-6.4.0/lib/:$LD_LIBRARY_PATH» экспортировать LD_LIBRARY_PATH, где /opt/jmagick-6.4.0/lib — это путь, в котором находятся мои файлы .so.Все еще получаю ту же ошибку.

4. Пожалуйста, удалите конечную / строку и покажите, как точно называется so.

5. о каком завершающем / вы говорите?