基于APR的Apache Tomcat兼容问题求助:Native库版本不匹配及Java适配问题
解决Tomcat APR Native库版本不兼容的问题
先给你掰扯明白:你之前换Java 9、Java 7完全找错方向了!这个报错的核心是Tomcat依赖的APR Native库版本不匹配,和JDK版本压根没关系,下面给你一步步解决:
问题本质
你用的Apache Tomcat 8.5.23,官方要求配套的APR Native库版本是1.2.14,但你服务器上装的是1.1.32,版本太低不兼容,这才触发了那个AprLifecycleListener.init的严重报错。
具体修复步骤
第一步:下载对应版本的APR库
去Tomcat官方的Native库下载区,找到对应你服务器操作系统(Windows/Linux/macOS)的1.2.14版本库文件:- Linux系统找
.so后缀的文件 - Windows找
.dll后缀的 - macOS找
.dylib后缀的
- Linux系统找
第二步:替换旧库文件
找到服务器上当前APR库的存放位置:- 一般要么在Tomcat的
bin目录里,要么在系统的全局库路径(比如Linux的/usr/lib)
把下载好的1.2.14版本库直接替换掉原来的1.1.32版本。
- 一般要么在Tomcat的
第三步:验证修复结果
重启Tomcat,再看启动日志,如果那个APR版本不兼容的报错消失了,就说明问题搞定了。
额外提醒
Tomcat 8.5.x本身是完全支持JDK 8的,你开发环境的1.8.0_144和服务器的1.8.0_77都是符合要求的,没必要折腾换JDK版本,把精力放在APR库的版本匹配上就对了。
内容的提问来源于stack exchange,提问作者Quentinb
相关产品推荐
相关产品推荐

