#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. о каком завершающем / вы говорите?