web-dev-qa-db-fra.com

version incompatible [1.1.34] de la bibliothèque native Apache Tomcat basée sur APR

Sur mon serveur openSUSE Leap 42.3 au démarrage de l'application Spring Boot 2.0.0.M6 sur le serveur Embedded Tomcat, l'erreur suivante apparaît dans les journaux:

ERROR 30471 --- [main] o.a.catalina.core.AprLifecycleListener: An incompatible version [1.1.34] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]

Pourriez-vous s'il vous plaît expliquer ce qui devrait être corrigé ici (et où) afin d'éviter cette erreur?

7
alexanoid

Comme la réponse était incomplète pour moi et que c'est le premier fil que Google trouve pour la recherche, je vais dire ce qui résout le problème pour moi.

Je devais télécharger la bibliothèque native Apache Tomcat de https://Tomcat.Apache.org/download-native.cgi puis placer le contenu du dossier bin (avec tcnative-1.dll) dans le dossier jdk. dossier que j'utilise.

J'espère que ça va aider quelqu'un!

source: Erreur d'incompatibilité de version APR au démarrage

4
Goldwynn

Cela est dû au fait que Tomcat installé sur le système (CATALINA_HOME) est en conflit avec des bibliothèques avec Tomcat à amorçage printanier. afin de supprimer cette erreur, téléchargez la bibliothèque native de la version requise et remplacez-la par tcnative-1.dll du dossier bin 

lien de téléchargement: https://archive.Apache.org/dist/Tomcat/tomcat-connectors/native/

3
Alien

La même chose m'est arrivé aussi. Dans mon cas, j'avais Tomcat 8.0.37 sur ma machine, donc il a été utilisé (par Tomcat intégré à partir de Spring Boot) via CATALINA_HOME. J'ai vérifié la version de Tomcat que la Spring Boot (dans mon cas 2.0.5.RELEASE) avait utilisée (il était 8.5.34) et je venais de remplacer l'ancienne version par la plus récente, CATALINA_HOME, bien sûr. Puis l'avertissement est parti.

Je suppose que mon approche vaut mieux que de télécharger des bibliothèques natives Tomcat et de les placer à proximité du JDK.

1
Dmitry Senkovich

Vous avez probablement (à tort) mis à niveau Tomcat et vous disposez donc d'une ancienne version de la bibliothèque native. Vous devez utiliser la version fournie avec votre version de Tomcat.

Tomcat est livré avec des bibliothèques natives dans le répertoire bin/ de la distribution. Assurez-vous de ne pas disposer d'une ancienne version quelque part. Vous devrez peut-être reconstruire libtcnative à partir de zéro et le regrouper avec votre application intégrée.

Vous pouvez également opter pour une solution non native et basculer vers le connecteur NIO de Tomcat.

1
Christopher Schultz