Что означает" APR based Apache Tomcat Native library was not found"?


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

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

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

9 69

9 ответов:

это означает именно то, что он говорит: "APR на основе Apache Tomcat родной библиотеки, которая позволяет оптимальную производительность в производственных средах не был найден на 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 Portable Runtime для обеспечения превосходства масштабируемость, производительность и лучшая интеграция с собственным сервером технологии. Apache Portable Runtime - это очень портативная библиотека то есть в сердце Apache HTTP Server 2.x. APR имеет много применений, в том числе доступ к расширенной функциональности ввода-вывода (например, sendfile, epoll и OpenSSL), функциональность уровня ОС (генерация случайных чисел, система состояние, etc), и родной обрабатывать процесса (общая память, трубы NT и сокет UNIX.)

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

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

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

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

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

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

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

sudo apt-get install libtcnative-1

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

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

    • sudo add-apt-repository ppa:webupd8team / java
    • sudo apt-получить обновление
    • sudo apt-get install oracle-java7-installer
    • sudo apt-get install oracle-java7-set-default
  2. установить котяра апреля:

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

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

Ubuntu 16.04

Tomcat 8.5.9

Apache2.4. 25

APR 1.5.2

Tomcat-native 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.смола.ГЗ

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

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

sudo make

sudo make install

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

cd / usr / local/apr/lib/

ls

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

libapr-1.Ла

Загрузите и установите Tomcat Native source package

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

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 / local/apr --с-java-home=$JAVA_HOME

sudo make

sudo make install

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

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

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

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

sudo service Tomcat restart

была эта проблема, а также. Если вы 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 не мог найти класс. Попробуйте просмотреть другие файлы журнала. Иногда ошибка класса def не отображается в разных файлах журнала:

  • tomcat8-stdout
  • tomcat8-stderr
  • localhost

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

sudo apt-get install libtcnative-1

и если он все еще там старая версия обновите ее:

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