o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.7] of the APR based Apache T...

本文详细记录了一次启动IntelliJ IDEA搭建的Spring Cloud分布式项目时遇到的Tomcat APR版本不兼容错误。错误提示安装了不兼容版本[1.2.7]的Apache Tomcat Native库,而Tomcat要求版本[1.2.14]。解决方法是替换C:WindowsSystem32下的tcnative-1.dll文件,并提供了正确的下载地址。

1、错误信息提示:

2019-04-16 22:02:05.811 ERROR 18112 --- [           main] o.a.catalina.core.AprLifecycleListener   : An incompatible version [1.2.7] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]

2019-04-16 22:02:06.056  INFO 18112 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 9001 (http)

2019-04-16 22:02:06.222 ERROR 18112 --- [           main] o.a.catalina.core.AprLifecycleListener   : An incompatible version [1.2.7] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]

2019-04-16 22:02:06.235  INFO 18112 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]

2019-04-16 22:02:06.235  INFO 18112 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.32

2019-04-16 22:02:06.251 ERROR 18112 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : An incompatible version [1.2.7] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]

2、IntellJ IDEA 搭建的分布式 spring cloud 项目,启动时出现error。通过查询相关资料获知需要更换C:\Windows\System32下 的 tcnative-1.ddl 文件。

3、下载地址为: http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.14/binaries/

    

 

转载于:https://www.cnblogs.com/northeastTycoon/p/10720755.html

### 关于 Apache Tomcat Native 库版本不兼容问题 当遇到 `Apache Tomcat Native` 库版本不兼容的情况时,通常是因为安装的原生库版本与 Tomcat 所需的版本不符。这种情况下,虽然不会阻止 Tomcat 正常运行[^1],但可能会导致某些功能无法正常工作或性能下降。 #### 问题分析 Tomcat 使用 `tcnative-1.dll` 或其他平台对应的动态链接库来提供更好的性能优化和支持特定的功能(如 OpenSSL 加密支持)。如果已安装的 APR 基础库版本不符合 Tomcat 的需求,则会触发警告消息。例如,在当前场景下,Tomcat 需要的是版本 `[1.2.34]`,而实际安装的是 `[1.2.30]`。 #### 解决方案 以下是解决此问题的具体方法: 1. **下载正确的版本** 访问官方站点或其他可信资源获取所需的 `Apache Tomcat Native` 版本。确保所选版本匹配操作系统架构(32位或64位),并满足 Tomcat 要求的最低版本号。对于该案例中的情况,应寻找适合的操作系统环境下的 `1.2.34` 版本[^4]。 2. **替换现有库文件** 将新下载的 `.dll` 文件放置到 Java 运行时环境中指定的位置,通常是 `$JAVA_HOME/bin` 目录下。这一步骤可以覆盖旧版的 `tcnative-1.dll` 文件[^3]。 3. **验证配置参数** 修改启动脚本或者设置环境变量以加载新的本地库路径。可以通过调整 `-Djava.library.path` 参数指向更新后的目录实现这一点。例如: ```bash export LD_LIBRARY_PATH=/path/to/new/tomcat/native/library:$LD_LIBRARY_PATH ``` 4. **重启服务确认更改生效** 完成上述操作之后重新启动 Tomcat 实例,观察日志输出是否仍然存在关于版本冲突的信息。如果没有再次显示类似的告警则表明修复成功。 ```python import os def set_library_path(new_lib_dir): """Set the environment variable to include a new directory.""" current_ld_path = os.environ.get('LD_LIBRARY_PATH', '') updated_ld_path = f"{new_lib_dir}:{current_ld_path}" if current_ld_path else new_lib_dir os.environ['LD_LIBRARY_PATH'] = updated_ld_path set_library_path('/usr/local/lib') # Example path where native libraries are stored. ``` 以上代码片段展示了如何通过 Python 动态修改 Linux 系统上的共享库查找路径之一——即 `LD_LIBRARY_PATH` 变量的内容。注意这里仅作为示例用途;具体实施取决于目标系统的实际情况以及使用的编程语言等因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值