web-dev-qa-db-de.com

inkompatible Version [1.1.34] der APR-basierten Apache Tomcat Native-Bibliothek

Auf meinem openSUSE Leap 42.3-Server während des Starts der Spring Boot 2.0.0.M6-Anwendung auf dem eingebetteten Tomcat-Server wird in den Protokollen der folgende Fehler angezeigt:

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]

Könnten Sie bitte erläutern, was dort (und wo) behoben werden sollte, um diesen Fehler zu vermeiden?

7
alexanoid

Da die Antwort für mich unvollständig war und es der erste Thread ist, den Google für die Recherche findet, werde ich sagen, was das Problem für mich löst.

Ich musste die Apache Tomcat Native Library von https://Tomcat.Apache.org/download-native.cgi herunterladen und dann den Inhalt des bin-Ordners (mit der tcnative-1.dll) in die jdk-bin legen Ordner, den ich benutze.

Hoffe es wird jemandem helfen!

source: Fehler beim Start der APR-Version

4
Goldwynn

Dies liegt daran, dass das vom System installierte Tomcat (CATALINA_HOME) Bibliotheken mit Spring Boot Tomcat in Konflikt steht. Um diesen Fehler zu beheben, laden Sie die native Bibliothek der erforderlichen Version herunter und ersetzen Sie sie mit der tcnative-1.dll im Ordner "bin" 

download-Link: https://archive.Apache.org/dist/Tomcat/tomcat-connectors/native/

3
Alien

Das Gleiche ist mir auch passiert. In meinem Fall hatte ich Tomcat 8.0.37 auf meinem Computer, so dass es (von Embedded Tomcat von Spring Boot) über CATALINA_HOME verwendet wurde. Ich habe die Tomcat-Version des Spring Bootes (in meinem Fall 2.0.5.RELEASE) überprüft (es war 8.5.34) und habe die alte Version einfach durch die neueste ersetzt, die CATALINA_HOME geändert hat. Dann ging die Warnung weg.

Ich gehe davon aus, dass mein Ansatz besser ist, als einige native Tomcat-Bibliotheken herunterzuladen und in der Nähe des JDK abzulegen.

1

Wahrscheinlich haben Sie Tomcat (nicht ordnungsgemäß) aufgerüstet und verfügen daher über eine alte Version der systemeigenen Bibliothek. Sie müssen die Version verwenden, die mit Ihrer Tomcat-Version geliefert wurde.

Tomcat wird mit nativen Bibliotheken im Verzeichnis bin/ der Distribution ausgeliefert. Stellen Sie sicher, dass Sie nicht irgendwo eine alte Version haben. Möglicherweise müssen Sie libtcnative von Grund auf neu erstellen und mit Ihrer eingebetteten Anwendung neu bündeln.

Oder erwägen Sie, eine nicht native Lösung zu verwenden und zum NIO-Anschluss von Tomcat zu wechseln.

1