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

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

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

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

9 ответов


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

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

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

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

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

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


на RHEL Linux просто вопрос:

yum установить tomcat-native.архитектуру x86_64

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

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

информация: возможности апреля: протокол IPv6 [истинного] функция sendfile [правда], принимаем фильтров [ложного], случайным образом [истинное].

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


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

sudo apt-get install libtcnative-1

Если это не работает tomcat-native должен быть установлен

  1. установить Oracle java7:

    • sudo add-apt-репозиторий ppa: webupd8team/java
    • sudo apt-получить обновление
    • sudo apt-get install oracle-java7-installer
    • sudo apt-get install oracle-java7-set-по умолчанию
  2. установить tomcat apr:

    • wget http://apache.mirror.anlx.net//apr/apr-1.5.0.tar.gz
    • tar zxvf apr-1.5.0.смола.gz
    • rm apr-1.5.0.смола.gz
    • cd apr-1.5.0
    • судо ./настроить
    • судо сделать
    • установка
    • экспорт LD_LIBRARY_PATH= '$LD_LIBRARY_PATH: / usr / local/apr / lib'
  3. установить tomcat tomcat-родной:


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

Ubuntu 16.04

Tomcat 8.5.9

apache2 не.4.25

1.5.2

Tomcat-родной 1.2.10

Java 8

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

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

sudo apt-получить обновление

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.смола.gz

компакт-диск апреля-1.5.2

судо ./настроить

судо сделать

установка

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

cd / usr / local/apr/lib/

ls

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

libapr-1.Ла

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

cd/opt/tomcat / bin

судо команды 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-родной-1.2.10-src.смола.gz

cd tomcat-native-1.2.10-src / native

проверка переменной JAVA_HOME

sudo pico ~/.bashrc и

экспорт переменной JAVA_HOME=/usr и/lib в/в jvm/java-в 8-пакеты OpenJDK-amd64 в

источник ~/.bashrc и

судо ./ configure --with-apr= / usr / локальный / apr -- с-java-home=$JAVA_HOME

судо сделать

установка

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

sudo pico /opt/tomcat/bin/setenv.sh

экспорт LD_LIBRARY_PATH= '$LD_LIBRARY_PATH: / usr / local/apr / lib'

перезапустить tomcat

перезапуск tomcat службы sudo


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

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

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

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


в debian 8 я исправляю это с помощью установки libapr1-dev:

apt-get install libtcnative-1 libapr1-dev

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

  • tomcat8-stdout
  • tomcat8-stderr
  • localhost в

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

sudo apt-get install libtcnative-1

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

sudo apt-получить обновление libtcnative-1