在我的openSUSE Leap 42.3服务器上,在嵌入式Tomcat服务器上的Spring Boot 2.0.0.M6应用程序启动期间,我在日志中看到以下错误:
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]
请你解释一下应该修复哪些(以及哪里)以避免这个错误?
答案 0 :(得分:5)
由于答案对我来说是不完整的,而且这是google在研究中找到的第一个线索,所以我会说什么可以为我解决问题。
我不得不从https://tomcat.apache.org/download-native.cgi下载Apache Tomcat本机库,然后将bin文件夹的内容(带有tcnative-1.dll)放入我使用的jdk bin文件夹中。
希望它将对某人有所帮助!
答案 1 :(得分:3)
这是因为系统安装的tomcat(CATALINA_HOME)是与spring boot tomcat冲突的库。所以要摆脱这个错误下载所需版本的本机库,并替换为bin文件夹&t; tcnative-1.dll
下载链接:https://archive.apache.org/dist/tomcat/tomcat-connectors/native/
答案 2 :(得分:1)
您可能(不正确地)升级了Tomcat,因此您拥有旧版本的本机库。您需要使用您的Tomcat版本附带的版本。
Tomcat在发行版的bin/
目录中附带本机库。确保你没有旧版本的旧版本。您可能需要从头开始重新构建libtcnative
并将其与嵌入式应用程序重新捆绑。
或者,考虑使用非本机解决方案并切换到Tomcat的NIO连接器。
答案 3 :(得分:1)
我也发生了同样的事情。就我而言,我的机器上装有Tomcat 8.0.37,因此(通过Spring Boot的嵌入式Tomcat)通过CATALINA_HOME
使用了它。我检查了Spring Boot使用的Tomcat版本(在我的情况下为2.0.5.RELEASE)(版本为8.5.34),并且当然也用最新的CATALINA_HOME
替换了旧版本。然后警告消失了。
我认为我的方法比下载一些本机Tomcat库并将它们放在JDK附近更好。