Подтвердить что ты не робот

Что означает "Основанная на APR Tomcat Native библиотека не была найдена"?

Я использую Tomcat 7 в Eclipse в Windows. Когда я запускаю Tomcat, я получаю следующее информационное сообщение:

Основанная на APR Apache Tomcat Native библиотека, которая обеспечивает оптимальную производительность в производственных средах, не найдена на java.library.path

Что это значит и как я могу предоставить библиотеку APR?

4b9b3361

Ответ 1

Это означает именно то, что он говорит: "Основанная на APR Apache Tomcat Native библиотека, которая обеспечивает оптимальную производительность в производственных средах, не найдена на java.library.path"

Библиотека, на которую ссылается, вставляется в специфичную для ОС dll (tcnative-1.dll), загруженную через JNI. Это позволяет tomcat использовать функциональные возможности ОС, не предусмотренные в Java Runtime (такие как sendfile, epoll, OpenSSL, состояние системы и т.д.). Tomcat будет работать отлично, но в некоторых случаях он будет быстрее с родными библиотеками.

Если вы действительно этого хотите, загрузите tcnative-1.dll (или libtcnative.so для Linux) и поместите его в папку bin, и добавьте системное свойство в конфигурацию запуска сервера tomcat в eclipse.

 -Djava.library.path=c:\dev\tomcat\bin

Ответ 2

Если вы не работаете с производственным сервером, не беспокойтесь об этом сообщении. Это библиотека, которая используется для повышения производительности (в производственных системах). Из Apache Portable Runtime (APR), основанная на Native library для Tomcat:

Tomcat может использовать Apache Portable Runtime для обеспечения превосходного масштабируемость, производительность и лучшая интеграция с собственным сервером технологии. Apache Portable Runtime - это очень портативная библиотека что лежит в основе Apache HTTP Server 2.x. APR имеет много применений, включая доступ к расширенным функциональным возможностям ввода-вывода (например, sendfile, epoll и OpenSSL), функциональность уровня ОС (генерация случайных чисел, система статус и т.д.) и собственная обработка процессов (разделяемая память, NT-каналы и Unix).

Ответ 3

На RHEL Linux просто выдайте:

yum install tomcat-native.x86_64

/Примечание: в зависимости от вашей архитектуры 64-битный или 32-битный пакет может иметь различное расширение /

Это все. После этого Вы найдете в файле журнала следующее информационное сообщение:

INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

Все операции будут заметно быстрее, чем раньше.

Ответ 4

Установка собственной библиотеки на сервере Ubuntu с помощью:

sudo apt-get install libtcnative-1

Если это не работает, то tomcat-native необходимо установить

  • Установите Oracle java7:

    • sudo add-apt-repository ppa: webupd8team/java
    • Обновление sudo apt-get
    • sudo apt-get install oracle-java7-installer
    • sudo apt-get install oracle-java7-set-default
  • Установить tomcat apr:

  • Установите tomcat tomcat-native:

Ответ 5

Я просто прошел через это и настроил его следующим образом:

Ubuntu 16.04

Tomcat 8.5.9

Apache2.4.25

Апр 1.5.2

Tomcat-native 1.2.10

Java 8

Вот шаги, которые я использовал, основываясь на старых постах здесь:

Установить пакет

sudo apt-get update
sudo apt-get install libtcnative-1

Убедитесь, что эти пакеты установлены

sudo apt-get install make 
sudo apt-get install gcc
sudo apt-get install openssl

Установить пакет

sudo apt-get install libssl-dev

Установите и скомпилируйте Apache APR

cd /opt/tomcat/bin
sudo wget http://apache.mirror.anlx.net//apr/apr-1.5.2.tar.gz
sudo tar -xzvf apr-1.5.2.tar.gz
cd apr-1.5.2
sudo ./configure
sudo make
sudo make install

проверить установку

cd /usr/local/apr/lib/
ls 

вы должны увидеть скомпилированный файл как

libapr-1.la

Загрузите и установите исходный пакет Tomcat Native

cd /opt/tomcat/bin
sudo wget https://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.10/source/tomcat-native-1.2.10-src.tar.gz
sudo tar -xzvf tomcat-native-1.2.10-src.tar.gz
cd tomcat-native-1.2.10-src/native

проверить JAVA_HOME

sudo pico ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
source ~/.bashrc
sudo ./configure --with-apr=/usr/local/apr --with-java-home=$JAVA_HOME
sudo make
sudo make install

Отредактируйте файл /opt/tomcat/bin/setenv.sh с помощью следующей строки:

sudo pico /opt/tomcat/bin/setenv.sh
export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:/usr/local/apr/lib'

перезапустить кот

sudo service tomcat restart

Ответ 6

на debian 8 Я исправляю его при установке libapr1-dev:

apt-get install libtcnative-1 libapr1-dev

Ответ 7

Была и эта проблема. Если у вас есть библиотеки, но все еще есть эта ошибка, это может быть ошибка конфигурации. Ваш server.xml может отсутствовать в следующей строке:

 <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

(В качестве альтернативы он может быть прокомментирован). Этот <Listener>, как и другие слушатели, является дочерним элементом верхнего уровня <Server>.

Без строки <Listener> нет попытки загрузить библиотеку APR, поэтому параметры LD_LIBRARY_PATH и -Djava.library.path= игнорируются.

Ответ 8

У меня была такая же проблема, когда tomasat не смог найти класс. Попробуйте просмотреть другие файлы журналов. Иногда в разных файлах журнала не обнаруживается ошибка определения класса def:

  • tomcat8-STDOUT
  • tomcat8-STDERR
  • локальный

Ответ 9

Если у вас нет библиотеки Tomcat Native, установите ее с помощью:

sudo apt-get install libtcnative-1

и если он все еще там, старая версия обновляет его с помощью:

sudo apt-get upgrade libtcnative-1

Ответ 10

У меня была эта проблема обновления с Java 8 до 11. После добавления этой зависимости мое приложение запустилось без проблем:

<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.25.0-GA</version>
</dependency>

Ответ 11

В Mac OS X:

$ brew install tomcat-native
==> tomcat-native
In order for tomcat APR lifecycle listener to find this library, you'll
need to add it to java.library.path. This can be done by adding this line
to $CATALINA_HOME/bin/setenv.sh

  CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/opt/tomcat-native/lib"

If $CATALINA_HOME/bin/setenv.sh does not exist, create it and make it executable.

Затем добавьте его в аргументы eclipse tomcat (дважды щелкните Сервер> Открыть конфигурацию запуска > вкладка Аргументы> Аргументы виртуальной машины)

-Djava.library.path=/usr/local/opt/tomcat-native/lib