Cento6.5启动Tomcat时报APR错的问题

遇到好几次tomcat报这咯APR错的问题,网上也有不少帖子说到这个问题,但是没有一个帖子是完全顺着来能直接解决自己的问题的,这里结合自己的环境和尝试总结一下这个问题的解决过程。

操作系统版本:Centos 6.5 x86_x64

Tomcat版本:7.0.47.0

JDK版本:1.7.0_51-b13 64位(甲骨文的太阳的jdk,不是openjdk)

启动时报错如下

The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

原因基本就是因为在tomcat的server.xml配置启用了apr模式,但是tomcat找不到

  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

究竟什么是APR,其实不需要理解也可以解决这个报错,这里可以大致理解为tomcat用来提升性能的一个东东。如果非要想知道这是个什么东西,可以去查资料了解一下bio/nio,基本可以理解为nio比bio好,但是tomcat使用apr比nio在提升性能方面更牛x(不要问为什么,一般情况下,配置复杂的都比较牛x,不然也不会有这篇帖子)

解决过程:

  1. 解决依赖环境,参照网上的帖子先yum一波流装好apr,apr-devel,gcc。没有openssl的话也yum之,最好连openssl-devel一块yum吧。我装好了openssl和openssl-devel,但启动tomcat有严重警告

    Failed to initialize the SSLEngine. org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform

    查了许多帖子才知道,如果你的网站不支持ssl,就在tomcat的配置文件server.xml里把apr的ssl关掉吧

    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />

    啥?还要装jdk?tomcat都装了一般jdk都已经装了好吧~~

  2. 解压tomcat/bin下面的tomcat-native.tar.gz,如下
    tar -zxvf tomcat-native.tar.gz

    别问我为什么参数非要用-zxvf,别的也可以,个人习惯而已。

  3. 解压好后,进入解压文件夹中的native文件夹,tomcat-native-1.1.29-src/jni/native,然后敲命令config
    ./configure --with-apr=/usr/bin/apr-1-config

    在这一步,有帖子说configure后面要跟参数--with-apr=/usr/local/apr --with-java-home=/usr/local/java,不过我这里找不到/usr/local/apr,java的home也不是这个,只能找到/usr/bin/apr-1-config,只有亲自试了才知道。而且我没装c编译依赖包,报错如下,

    checking for C compiler default output file name... configure: error: C compiler cannot create executables
    See `config.log‘ for more details.

    总之要yum一下gcc依赖包(前面已提到,yum过了就不用再yum了)完事了,make安装吧

    make && makmake install
  4. 安装好后,系统还是找不到,可以做个软连接,如下
    ln -s /usr/local/apr/lib/libtcnative-1.so /usr/lib64/libtcnative-1.so
  5. 启动成功。

Cento6.5启动Tomcat时报APR错的问题,布布扣,bubuko.com

时间: 2024-09-28 06:28:05

Cento6.5启动Tomcat时报APR错的问题的相关文章

MyEclipse 启动tomcat时报错:Cannot change deployment state from ERROR to REDEPLOYING.ds

myeclipse 启动tomcat时报错:Cannot change deployment state from ERROR to REDEPLOYING.ds - 刘琦的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/u012922219/article/details/42869361   错误 : 无改将部署状态从"错误"变成"重新部署"状态. 解决办法: 右击"项目名" –> MyEclipse

启动Tomcat服务器报错

启动Tomcat服务器报错: Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to sto

Android 启动Tomcat服务报错,端口占用解决方案

启动Tomcat服务器报错:Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop

xmapp启动Tomcat时报JDK、JRE未安装错误的解决方法

我的xmapp是1.8,用的是非安装版的JDK,设置好JAVA_HOME之后,用xmapp控制面板启动Tomcat时报JDK.JRE未安装错误,错误内容如下: 17:07:17 [Tomcat] Attempting to start Tomcat app... 17:07:18 [Tomcat] Tomcat Started/Stopped with errors, return code: 1 17:07:18 [Tomcat] Make sure you have Java JDK or 

struts2 启动tomcat时报错:org.apache.catalina.core.StandardContext filterStart

用struts2+jsp做个网站,到了网站制作后期时,启动tomcat竟然无法启动,挂了.之前一直有用可是今天添加了一些东西就挂了,删除之后还是无法启动tomcat服务器. 下面是报错的代码: <span style="color:#ff0000;"> org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter struts</span> <s

启动tomcat服务器报错:ERROR ContextLoader:307 - Context initialization failed

错误详情 十月 01, 2018 7:46:36 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:bos19' did not find a matching property.十月 01, 201

idea 启动 tomcat 不报错 但是跑不成功

idea 启动 tomcat 跑不起来 经百度之后,重新配置 Artifact 没解决,重新载入tomcat ,重新配置tomcat 还是解决不了. 结果是因为jpa 的实体类 @Column(name="CREATE_DATE")  同名了 原文地址:https://www.cnblogs.com/ljt123/p/10620533.html

idea启动tomcat时报错:Error during artifact deployment. See server log for details.

Error during artifact deployment. See server log for details. 这个很多人都找不出来,原因无非2个: 一.jar 包有有些没能识别,tomcat没有配置好! 二.这个一般代码错了: 除了看 server 的报错,别忘了看看 tomcat localhost Log 日志文件啊! 比如我这里是新增实体类,但是没有在 application-hibernate 添加记录,所有报错了! 原文地址:https://www.cnblogs.com

启动tomcat直接报错:org.apache.tomcat.util.digester.Digester startElement

今天很奇怪,自己手动搭建了一个ssm(spring+springmvc+mybatis)的项目,然后添加到tomcat下,启动直接报错: 2017-3-19 9:24:47 org.apache.tomcat.util.digester.Digester startElement严重: Begin event threw errorjava.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.