J'utilise Tomcat 7 dans Eclipse sous Windows. Lors du démarrage de Tomcat, le message d’information suivant s’affiche:
La bibliothèque native Apache Tomcat basée sur APR, qui permet d'obtenir des performances optimales dans les environnements de production, n'a pas été trouvée sur le fichier Java.library.path.
Qu'est-ce que cela signifie et comment puis-je fournir la bibliothèque APR?
Cela signifie exactement ce qu'il dit: "La bibliothèque native Apache Tomcat basée sur APR, qui permet des performances optimales dans les environnements de production, n'a pas été trouvée sur le fichier Java.library.path"
La bibliothèque à laquelle il est fait référence est regroupée dans une dll spécifique au système d'exploitation (tcnative-1.dll) chargée via JNI. Il permet à Tomcat d’utiliser les fonctionnalités du système d’exploitation non fournies dans Java Runtime (telles que sendfile, epoll, OpenSSL, l’état du système, etc.). Tomcat fonctionnera parfaitement sans cela, mais dans certains cas d'utilisation, les bibliothèques natives seront plus rapides.
Si vous le souhaitez vraiment, téléchargez tcnative-1.dll
(ou libtcnative.so
pour Linux) et placez-le dans le dossier bin, puis ajoutez une propriété système à la configuration de lancement du serveur Tomcat dans Eclipse.
-Djava.library.path=c:\dev\Tomcat\bin
Sauf si vous utilisez un serveur de production, ne vous inquiétez pas de ce message. Cette bibliothèque est utilisée pour améliorer les performances (sur les systèmes de production). De Bibliothèque native basée sur Apache Portable Runtime (APR) pour Tomcat :
Tomcat peut utiliser Apache Portable Runtime pour fournir une qualité supérieure Évolutivité, performance et meilleure intégration avec le serveur natif les technologies. Apache Portable Runtime est une bibliothèque hautement portable c'est au cœur d'Apache HTTP Server 2.x. APR a de nombreuses utilisations, y compris l’accès aux fonctionnalités avancées IO (telles que sendfile, epoll et OpenSSL), aux fonctionnalités au niveau du système d’exploitation (génération de nombres aléatoires, système status, etc.) et à la gestion de processus natifs (mémoire partagée, canaux NT et Unix).
Sous RHEL Linux, il suffit de publier:
yum install Tomcat-native.x86_64
/ Remarque: selon votre architecture, les packages 64 bits ou 32 bits peuvent avoir une extension différente /
C'est tout. Après cela, vous trouverez dans le fichier journal le message d’information suivant:
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Toutes les opérations seront sensiblement plus rapides qu'avant.
Installez la bibliothèque native sur le serveur Ubuntu avec:
Sudo apt-get install libtcnative-1
Si cela ne fonctionne pas, Tomcat-native doit être installé.
Installez Oracle Java7:
Installez Tomcat apr:
Installez Tomcat tomcat-native:
Eu ce problème aussi. Si vous do avez les bibliothèques, mais avez toujours cette erreur, il peut s'agir d'une erreur de configuration. Votre server.xml
manque peut-être la ligne suivante:
<Listener className="org.Apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
(Alternativement, il peut être commenté). Ce <Listener>
, comme les autres écouteurs, est un enfant du <Server>
de niveau supérieur.
Sans la ligne <Listener>
, aucune tentative de chargement de la bibliothèque APR n’est tentée; les paramètres LD_LIBRARY_PATH
et -Djava.library.path=
sont donc ignorés.
Je viens de traverser cela et le configurer avec les éléments suivants:
Ubuntu 16.04
Tomcat 8.5.9
Apache2.4.25
APR 1.5.2
Tomcat-native 1.2.10
Java 8
Voici les étapes que j'ai suivies à partir des anciens messages ici:
Sudo apt-get update
Sudo apt-get install libtcnative-1
Sudo apt-get install marque
Sudo apt-get install gcc
Sudo apt-get install openssl
Sudo apt-get installer libssl-dev
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 faire
Sudo fait installer
cd/usr/local/apr/lib /
ls
libapr-1.la
cd/opt/Tomcat/bin
Sudo tar -xzvf Tomcat-native-1.2.10-src.tar.gz
cd Tomcat-native-1.2.10-src/native
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 faire
Sudo fait installer
Sudo pico /opt/Tomcat/bin/setenv.sh
export LD_LIBRARY_PATH = '$ LD_LIBRARY_PATH:/usr/local/apr/lib'
Sudo service Tomcat redémarrer
sur debian 8, je résous le problème avec l’installation de libapr1-dev
:
apt-get install libtcnative-1 libapr1-dev
Si vous n'avez pas de bibliothèque native Tomcat, installez-la avec:
Sudo apt-get install libtcnative-1
et s'il en reste une ancienne version, mettez-la à niveau avec:
Sudo apt-get upgrade libtcnative-1
J'ai eu ce problème mise à niveau de Java 8 à 11. Après avoir ajouté cette dépendance, mon application a été lancée sans problème:
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.25.0-GA</version>
</dependency>
J'ai eu le même problème quand tomсat n'a pas pu trouver la classe. Essayez d'afficher d'autres fichiers journaux. Parfois, aucune erreur de définition de classe trouvée ne s'affiche dans différents fichiers journaux: