eclipse - pagina - ¿Qué significa "no se encontró la biblioteca nativa Apache Tomcat basada en APR"?
tomcat linux (9)
A menos que esté ejecutando un servidor de producción, no se preocupe por este mensaje. Esta es una biblioteca que se usa para mejorar el rendimiento (en sistemas de producción). Desde la biblioteca nativa basada en Apache Portable Runtime (APR) para Tomcat :
Tomcat puede utilizar Apache Portable Runtime para proporcionar una escalabilidad superior, rendimiento y una mejor integración con las tecnologías de servidor nativas. Apache Portable Runtime es una biblioteca altamente portátil que está en el corazón del Servidor Apache HTTP 2.x. APR tiene muchos usos, incluido el acceso a la funcionalidad IO avanzada (como sendfile, epoll y OpenSSL), funcionalidad de nivel del sistema operativo (generación de números aleatorios, estado del sistema, etc.) y manejo de procesos nativos (memoria compartida, NT pipes y sockets Unix).
Estoy usando Tomcat 7 en Eclipse en Windows. Al iniciar Tomcat, recibo el siguiente mensaje de información:
La biblioteca APR basada en Apache Tomcat Native que permite un rendimiento óptimo en entornos de producción no se encontró en java.library.path
¿Qué significa esto y cómo puedo proporcionar la biblioteca de APR?
Acabo de revisar esto y lo configuré con lo siguiente:
Ubuntu 16.04
Tomcat 8.5.9
Apache2.4.25
APR 1.5.2
Tomcat-nativo 1.2.10
Java 8
Estos son los pasos que utilicé basados en las publicaciones más antiguas aquí:
Paquete de instalación
sudo apt-get update
sudo apt-get install libtcnative-1
Verifique que estos paquetes estén instalados
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install openssl
Paquete de instalación
sudo apt-get install libssl-dev
Instalar y compilar 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
hacer sudo
sudo make install
verificar la instalación
cd / usr / local / apr / lib /
ls
debería ver el archivo compilado como
libapr-1.la
Descargue e instale el paquete de origen nativo Tomcat
cd / opt / tomcat / bin
sudo tar -xzvf tomcat-native-1.2.10-src.tar.gz
cd tomcat-native-1.2.10-src / native
verificar JAVA_HOME
sudo pico ~ / .bashrc
exportar JAVA_HOME = / usr / lib / jvm / java-8-openjdk-amd64
fuente ~ / .bashrc
sudo ./configure --with-apr = / usr / local / apr --with-java-home = $ JAVA_HOME
hacer sudo
sudo make install
Edite el archivo /opt/tomcat/bin/setenv.sh con la siguiente línea:
sudo pico /opt/tomcat/bin/setenv.sh
exportar LD_LIBRARY_PATH = ''$ LD_LIBRARY_PATH: / usr / local / apr / lib''
reiniciar Tomcat
sudo service tomcat restart
En RHEL Linux acaba de emitir:
yum install tomcat-native.x86_64
/ Nota: según su arquitectura, el paquete de 64 bits o de 32 bits puede tener diferentes extensiones /
Eso es todo. Después de eso, encontrará en el siguiente archivo de registro el siguiente mensaje informativo:
INFO: capacidades APR: IPv6 [verdadero], sendfile [verdadero], aceptar filtros [falso], al azar [verdadero].
Todas las operaciones serán notablemente más rápidas que antes.
Instalación de la biblioteca nativa en el servidor Ubuntu con:
sudo apt-get install libtcnative-1
Si eso no funciona, debe instalarse Tomcat-native
Instalar Oracle java7:
- sudo add-apt-repository ppa: webupd8team / java
- sudo apt-get update
- sudo apt-get install oracle-java7-installer
- sudo apt-get install oracle-java7-set-default
Instalar tomcat apr:
- wget http://apache.mirror.anlx.net//apr/apr-1.5.0.tar.gz
- tar zxvf apr-1.5.0.tar.gz
- rm apr-1.5.0.tar.gz
- cd apr-1.5.0
- sudo ./configure
- hacer sudo
- sudo make install
- exportar LD_LIBRARY_PATH = ''$ LD_LIBRARY_PATH: / usr / local / apr / lib''
Instalar tomcat tomcat-native:
- wget http://mirrors.ukfast.co.uk/sites/ftp.apache.org//tomcat/tomcat-connectors/native/1.1.29/source/tomcat-native-1.1.29-src.tar.gz
- tar zxvf tomcat-native-1.1.29-src.tar.gz
- rm tomcat-native-1.1.29-src.tar.gz
- cd tomcat-native-1.1.29-src / jni / native
- JAVA_HOME = / usr / lib / jvm / java-7-oracle
- sudo ./configure --with-apr = / usr / local / apr --with-java-home = $ JAVA_HOME
- hacer sudo
- sudo make install
Si no tiene la biblioteca nativa de Tomcat, instálelo con:
sudo apt-get install libtcnative-1
y si todavía está allí una versión anterior, actualícela con:
sudo apt-get upgrade libtcnative-1
Significa exactamente lo que dice: "La biblioteca nativa Apache Tomcat basada en APR que permite un rendimiento óptimo en entornos de producción no se encontró en java.library.path"
La biblioteca a la que se hace referencia está incluida en una dll específica del sistema operativo (tcnative-1.dll) cargada a través de JNI. Permite a tomcat utilizar funcionalidades de SO no provistas en Java Runtime (como sendfile, epoll, OpenSSL, estado del sistema, etc.). Tomcat funcionará perfectamente sin él, pero para algunos casos de uso, será más rápido con las bibliotecas nativas.
Si realmente lo desea, descargue el tcnative-1.dll
(o libtcnative.so
para Linux) y libtcnative.so
en la carpeta bin, y agregue una propiedad del sistema a la configuración de inicio del servidor tomcat en eclipse.
-Djava.library.path=c:/dev/tomcat/bin
Tenía este problema también. Si tiene las bibliotecas, pero todavía tiene este error, puede ser un error de configuración. Su server.xml
puede estar perdiendo la siguiente línea:
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
(Alternativamente, puede ser comentado). Este <Listener>
, como otros oyentes, es hijo del <Server>
nivel superior.
Sin la línea <Listener>
, no hay ningún intento de cargar la biblioteca APR, por lo que se ignoran las configuraciones LD_LIBRARY_PATH
y -Djava.library.path=
.
Tuve el mismo problema cuando Tomás no pudo encontrar la clase. Intenta ver otros archivos de registro. En ocasiones, no aparece ningún error de definición de clase en diferentes archivos de registro:
- tomcat8-stdout
- tomcat8-stderr
- localhost
en debian 8 Lo soluciono instalando libapr1-dev
:
apt-get install libtcnative-1 libapr1-dev