2012-01-03 2 views
60

Я использую Tomcat 7 в Eclipse на Windows. При запуске Tomcat, я получаю следующее сообщение: информацияЧто означает «Абонентская библиотека Apache Tomcat Native не была найдена»?

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

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

ответ

75

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

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

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

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

+1 Я получал эту ошибку (отправил OP) только под Eclipse, хотя она была исправлена, когда я запускаю ее автономно (конечно, после добавления родной библиотеки.) Спасибо за отзыв о настройке системного свойства! – asgs

+5

Есть ли способ отключить функцию без добавления файла .dll? @greyfairer –

+0

@greyfairer как насчет IntelliJ IDEA под Mac OS? – aircraft

25

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

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

18

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

ням установить native.x86_64-кот

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

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

INFO: возможности APR: IPv6 [true], sendfile [true], принимать фильтры [false], random [true].

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

+2

Для CentOS 7, по крайней мере, он не был найден в репозиториях по умолчанию. Однако это было в EPEL, поэтому после установки yum install epel-release он устанавливает. –

16

Установка родной библиотеки на сервере Ubuntu с:

sudo apt-get install libtcnative-1 

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

  1. Установка Oracle java7:

    • SUDO add-apt-repository ppa: webupd8team/java
    • sud о APT-получить обновление
    • Sudo APT-получить установку оракула java7-установщиков
    • Sudo APT-получить установку оракул-java7 набора по умолчанию
  2. Установите кота апрелю:

    • Wget http://apache.mirror.anlx.net//apr/apr-1.5.0.tar.gz
    • TAR zxvf апреля-1.5.0.tar.gz
    • ет апрель-1.5.0.tar.gz
    • кд апреля-1.5.0
    • Судо ./configure
    • Sudo сделать
    • Sudo сделать установку
    • экспортом LD_LIBRARY_PATH = '$ LD_LIBRARY_PATH:/USR/местный/апреля/Библиотека'
  3. Установите кот-кот родной:

+0

Я пробовал все это, но ничего не работает. Я продолжаю получать «Установленный протокол [org.apache.coyote.http11.Http11AprProtocol] требует, чтобы APR/родная библиотека была недоступна». Даже команда «ant jar» и скопировала tomcat-native-1.1.33-dev.jar в мой каталог tomcat/lib. – coladict

+0

Вам необходимо скопировать полученный файл .so в этот каталог или, более конкретно, в java.library.path. – demonkoryu

0

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

  • tomcat8-стандартный вывод
  • tomcat8-STDERR
  • локальный
3

на Debian 8 исправить его с установкой libapr1-dev:

apt-get install libtcnative-1 libapr1-dev 
0

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

Sudo APT-получить установку libtcnative-1

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

Sudo APT-получить обновление libtcnative-1

3

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

Ubuntu 16,04

Tomcat 8.5.9

Apache2.4.25

апреля 1.5.2

Tomcat родной 1.2.10

Java 8

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

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

Sudo APT-получить обновление

Sudo APT-получить установку libtcnative-1

Проверьте эти пакеты установлены

Sudo APT-получить установку сделать

Sudo APT-получить установить gcc

sudo apt-get install openssl

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

Sudo APT-получить установку libssl-DEV

Установка и скомпилировать Apache APR

кд/Opt/кот/бен

Судо Wget http://apache.mirror.anlx.net//apr/apr-1.5.2.tar.gz

Судо деготь - xzvf apr-1.5.2.tar.gz

cd apr-1.5.2

Судо ./configure

Sudo сделать

Sudo сделать установку

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

кд/USR/местные/APR/Lib/

Ls

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

libapr-1.la

Загрузка и установка пакета Tomcat Родной источник

кд/Opt/кот/бен

Судо Wget https://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.10/source/tomcat-native-1.2.10-src.tar.gz

Судо деготь -xzvf-native- кот 1.2.10-src.tar.gz

CD-кот нативной 1.2.10-Src/родной

проверить JAVA_HOME

Суд пико ~/.bashrc

экспорт JAVA_HOME =/USR/Библиотека/JVM/Java-8-OpenJDK-amd64

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

Суда./настроить --with-апрель =/USR/местные/апреля --with-Java-дома = $ JAVA_HOME

Sudo сделать

Sudo сделать установку

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

Суд пико /opt/tomcat/bin/setenv.sh

экспортом LD_LIBRARY_PATH = '$ LD_LIBRARY_PATH:/USR/местные/апрель/Библиотека»

рестарта кот

Судо служба перезапустить Tomcat

3

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

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

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

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