114 votes

Que signifie "La bibliothèque Apache Tomcat Native basée sur APR n'a pas été trouvée" ?

J'utilise Tomcat 7 dans Eclipse sous Windows. Au démarrage de Tomcat, j'obtiens le message d'information suivant :

La bibliothèque native d'Apache Tomcat basée sur APR, qui permet des performances optimales dans les environnements de production, n'a pas été trouvée dans le répertoire java.library.path.

Qu'est-ce que cela signifie et comment puis-je fournir la bibliothèque APR ?

123voto

greyfairer Points 4522

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 dans le fichier java.library.path".

La bibliothèque en question est intégrée dans une dll spécifique au système d'exploitation (tcnative-1.dll) chargée via JNI. Elle permet à Tomcat d'utiliser les fonctionnalités du système d'exploitation qui ne sont pas fournies par le Runtime Java (comme sendfile, epoll, OpenSSL, le statut du système, etc.) Tomcat fonctionnera très bien sans elle, mais pour certains cas d'utilisation, il sera plus rapide avec les bibliothèques natives.

Si vous le voulez vraiment, téléchargez le tcnative-1.dll (ou libtcnative.so pour Linux) et le mettre dans le dossier bin, et ajouter une propriété système à la configuration de lancement du serveur tomcat dans eclipse.

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

1 votes

+1 J'obtenais cette erreur (postée par l'OP) uniquement sous Eclipse, même si elle était corrigée lorsque je l'exécutais de manière autonome (bien sûr, après avoir ajouté la librairie native.) Merci pour l'astuce sur la définition de la propriété système !

9 votes

Existe-t-il un moyen de désactiver cette fonctionnalité sans ajouter le fichier .dll ? @greyfairer

2 votes

@greyfairer qu'en est-il d'IntelliJ IDEA sous Mac OS ?

32voto

user911734 Points 71

Sur RHEL Linux, il suffit d'émettre :

yum install tomcat-native.x86_64

/Note : selon votre architecture, les paquets 64bit ou 32bit peuvent avoir une extension différente.

C'est tout. Après cela, vous trouverez dans le fichier journal le message informatif suivant :

INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

Toutes les opérations seront sensiblement plus rapides qu'auparavant.

2 votes

Pour CentOS 7 au moins, il n'a pas été trouvé dans les dépôts par défaut. Il était cependant dans EPEL, donc après avoir fait yum install epel-release, il s'installe.

4 votes

Pour CentOS 7, yum install tomcat-native J'ai réparé cela pour moi

31voto

Matthew Farwell Points 31257

À moins que vous n'exécutiez un serveur de production, ne vous inquiétez pas de ce message. Il s'agit d'une bibliothèque qui est utilisée pour améliorer les performances (sur les systèmes de production). À partir de Bibliothèque native pour Tomcat basée sur Apache Portable Runtime (APR) :

Tomcat peut utiliser l'Apache Portable Runtime pour offrir une meilleure performances et une meilleure intégration avec les technologies serveur natives. natives. L'Apache Portable Runtime est une bibliothèque hautement portable. qui est au cœur du serveur HTTP Apache 2.x. L'APR a de nombreuses utilisations, notamment l'accès à des fonctionnalités d'E/S avancées (telles que sendfile, epoll et OpenSSL), aux fonctionnalités du système d'exploitation (génération de nombres aléatoires, état du système, etc. système, etc.) et la gestion des processus natifs (mémoire partagée, pipes NT et sockets Unix). sockets Unix).

23voto

Amadu Bah Points 409

Installation de la bibliothèque native sur le serveur Ubuntu avec :

sudo apt-get install libtcnative-1

Si cela ne fonctionne pas, il faut installer tomcat-native.

  1. Installez 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
  2. Installer tomcat apr :

  3. Installer tomcat tomcat-native :

1 votes

J'ai essayé tout cela, mais rien ne fonctionne. Je continue à obtenir 'Le protocole configuré [org.apache.coyote.http11.Http11AprProtocol] nécessite la bibliothèque APR/native qui n'est pas disponible'. J'ai même fait la commande "ant jar" et copié tomcat-native-1.1.33-dev.jar dans mon répertoire tomcat/lib.

0 votes

Vous devez copier le fichier .so résultant dans ce répertoire, ou plus précisément, dans java.library.path.

-1voto

Sandeep Roniyaar Points 153

Vous pouvez modifier la configuration du serveur eclipse tomcat. Ouvrez la vue du serveur, double-cliquez sur votre serveur pour ouvrir la configuration du serveur. Puis cliquez pour activer "Publish module contents to separate XML files". Enfin, redémarrez votre serveur, le message doit disparaître.

Cette fois, votre page arrivera sans problème.

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X