关于The APR based Apache Tomcat Native library警告

关于The APR based Apache Tomcat Native library警告

Linux下解决办法:

原文出处:http://blog.chenlb.com/2009/01/install-apache-portable-runtime-or-tomcat-native-on-tomcat.html

apr 与 tomcat-native 提供更好的伸缩性、性能和集成到本地服务器技术。

如果没有apr技术,启动tomcat 时出现如下提示:

信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/jdk1.6.0_06/jre/lib/i386/client:/usr/java/jdk1.6.0_06/jre/lib/i386:/usr/java/jdk1.6.0_06/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib

按照官方说明需要:

  • APR library
  • OpenSSL libraries

openssl 可以用 yum install openssl-devel,apr还是下载*.gz来安装。

下载三个源码包:
1、apr-1.4.6.tar.gz
2、apr-util-1.4.1.tar.gz
3、tomcat-native-1.1.27-src.tar.gz

安装 apr

  1. cd apr-1.4.6   
  2. ./configure   --prefix=/usr/local/apr
  3. make  
  4. make install  
apr 默认安装在 /usr/local/apr

 

安装 apr-util

  1. cd apr-util-1.4.1   
  2. ./configure --with-apr=/usr/local/apr   
  3. make  
  4. make install  

安装 tomcat-native

  1. cd tomcat-native-1.2.27-src/jni/native   
  2. ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.7.0  
  3. make  
  4. make install  

设置 apr 的环境变量:

  1. vi /etc/profile   
  2. # 后面添加以下内容   
  3. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib   
  4. # 使profile生效,   
  5. source /etc/profile  

启动 tomcat 后, 看日志:

  1. bin/startup.sh   
  2. head logs/catalina.out  

可以看到以下结果:

信息: Loaded APR based Apache Tomcat Native library 1.1.14.
2009-1-13 11:12:51 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

好了, 可以运行了,但没有测试其性能提交多少。

----------------------------------------------------------------------------------------------------------------------------------------------------------
windows下解决办法:
在eclipse中,启动tomcat时会出现如此信息:The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path,它其实不影响程序的正常运行,但看到了,感觉实在别扭。其解决办法如下:

http://tomcat.heanet.ie/native/ 下载tcnative-1.dll,然后放到你的JDK路径下的bin目录下。重新启动tomcat,就没有问题了。

    这个tcnative-1.dll 他的作用如下:

    tomcat整合本地apr会使效率提升:
    一是,处理静态资源的时候速度更快,(注:有人用jmeter,对使用apr前后的tomcat进行压力测试,结果显示,性能是有一定的提升,但是没有想象中多,只有一点点,当然,这与运行的逻辑有关,但是我个人认为在大多数情况下这部分性能提升甚微)。
    二是,我认为提升比较多的是对ssl的处理效率,当tomcat处理https的请求是,如果使用本地的openssl库,肯定会比前面提升的效率高。(虽然没有实际测试数据,但我推测这里的性能提升比例上要比第一点多得多)。

 

    原因上面已经说得很清楚了,下面说下我的解决办法。

    首先,tcnative-1.dll不需要下载,至少对于Tomcat7来说是这样,我们可以在其bin目录下找到这个dll;

    其次,tcnative-1.dll放在哪儿不要紧,只要在系统的PATH中可以找到就行。

 

   解决:

   在系统的环境变量中添加CATALINA_HOME,它指向你的Tomcat根目录,接着在PATH路径中添加%CATALINA_HOME%\bin;

   这样就可以解决了,对了,设置完成后,可能需要重启下Eclipse。

你可能感兴趣的:(中间件)