錯誤提示:
The APR based Apache Tomcat Native library which allows optimal performanc e in production environments was not found on the java.library.path: D:\Java\jdk 1.5.0_07\bin
詳細參考出處:
http://blog.csdn.net/zh592677127/article/details/8603490tomcat7如果沒配置APR,啟動時會報這樣的錯誤日志:
信息: The APR based Apache Tomcat Native library which allows optimal performanc e in production environments was not found on the java.library.path: D:\Java\jdk 1.5.0_07\bin,提示沒找到APR的配置
先解釋一下APR,APR: Apache Portable Runtime,可看作是Apache輕便運行時,在http://tomcat.apache.org/tomcat-6.0-doc/apr.html 對APR進行了詳細介紹,說白了作用就是如何在 Tomcat中使用JNI的方式來讀取文件以及進行網絡傳輸。這個東西可以大大提升Tomcat對靜態文件的處理性能,同時如果你使用了HTTPS方式傳輸的話,也可以提升SSL的處理性能。可以不使用Apache也能提高對靜態文件的處理能力。
Tomcat可以使用APR來提供超強的可伸縮性和性能,更好地集成本地服務器技術.
APR(Apache Portable Runtime)是一個高可移植庫,它是Apache HTTP Server 2.x的核心。APR有很多用途,包括訪問高級IO功能(例如sendfile,epoll和OpenSSL),OS級別功能(隨機數生成,系統狀態等等),本地進程管理(共享內存,NT管道和UNIX sockets)。這些功能可以使Tomcat作為一個通常的前臺WEB服務器,能更好地和其它本地web技術集成,總體上讓Java更有效率作為一個高性能web服務器平臺而不是簡單作為后臺容器。
在產品環境中,特別是直接使用Tomcat做WEB服務器的時候,應該使用Tomcat Native來提高其性能。
要測APR給tomcat帶來的好處最好的方法是在慢速網絡上(模擬 Internet),將Tomcat線程數開到300以上的水平,然后模擬一大堆并發請求。如果不配APR,基本上300個線程狠快就會用滿,以后的請求就只好等待。但是配上APR之后,并發的線程數量明顯下降,從原來的300可能會馬上下降到只有幾十,新的請求會毫無阻塞的進來。在局域網環境測,就算是 400個并發,也是一瞬間就處理/傳輸完畢,但是在真實的Internet環境下,頁面處理時間只占0.1%都不到,絕大部分時間都用來頁面傳輸。
一. Windows環境:
APR需要安裝三個組件:
1、APR library
2、JNI wrappers for APR used by Tomcat (libtcnative)
3、OpenSSL libraries
從http://tomcat.heanet.ie/native/1.1.14/binaries/win32/ ,下載tcnative-1.1.10.dll,tcnative-1.1.10.dll已經包含了上面的三個組件,所以只要把tcnative-1.1.10.dll拷貝到tomcat的bin下就行了。
然后啟動tomcat,啟動后的信息為:信息: Loaded APR based Apache Tomcat Native library 1.1.14. 2009-12-24 14:17:59 org.apache.catalina.core.AprLifecycleListener init 信息: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], r andom [true]. 2009-12-24 14:18:00 org.apache.coyote.http11.Http11AprProtocol init 這說明APR配置成功,已經啟用。
windows中還有一種方式是:
1.將 tcnative-1.1.10.dll 放于tomcat的同級目錄 APR/lib 下;
2. 修改一下 catalina.bat,加上set CATALINA_OPTS="-Djava.library.path=../../APR/lib"
還有就是直接將 tcnative-1.1.10.dll加到系統變量PATH里面,也可以放在 windows/system32 下面。
二. Linux環境:
(1).安裝APR
APR需要三個組件:
1.apr-1.3.9.tar.gz
2.apr-util-1.3.9.tar.gz
3.tomcat-native.tar.gz
從 http://apr.apache.org/download.cgi 上可下載apr-1.3.9.tar.gz和apr-util-1.3.9.tar.gz,tomcat中自帶 tomcat-native.tar.gz ,
將 apr-1.3.9.tar.gz和 apr-util-1.3.9.tar.gz 上傳到/usr/local/目錄,
# wget http://apache.freelamp.com/apr/apr-1.3.9.tar.gz
#apr-1.3.9.tar.gz
#tar zxvf apr-1.3.9.tar.gz
#cd apr-1.3.9
#./configure
#make
#make install
執行完后,會有提示信息:
Libraries have been installed in:
/usr/local/apr/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
會在/local生成apr目錄, apr-1.3.9 的庫安裝在/usr/local/apr/lib目錄。
# wget http://apache.freelamp.com/apr/apr -util -1.3.9.tar.gz
#apr-util-1.3.9.tar.gz
#tar zxvf apr-util-1.3.9.tar.gz
#cd apr-util-1.3.9
#./configure --with-apr=/usr/local/apr //配置指向apr-1.3.9的安裝目錄
#make
#make install
command執行完后,提示信息和 apr-1.3.9的信息相同,表示apr-util-1.3.9 的庫也安裝在/usr/local/apr/lib目錄。
安裝 tomcat-native組件
#cd /usr/local/tomcat6/bin
#tar zxvf tomcat-native.tar.gz
#cd tomcat-native-1.1.16-src/jni/native
# . /configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.5.0_20
#make
#make install
command執行完的提示信息和安裝 apr-1.3.9 的提示相同,表示 tomcat-native 的庫 也是安裝在 /usr/local/apr/lib目錄。
(2)設置 Tomcat 整合 APR
有兩種方法:
1.修改 tomcat 的啟動 shell ( catalina.sh ),在該文件中加入啟動參數: CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
2.也可以在環境變量中配置/etc/profile中加入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr /lib
vi /etc/profile
# 后面添加以下內容
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/ local /apr/lib
# 使profile生效,
source /etc/profile
(3).判斷安裝成功:
啟動tomcat,看日志
#bin/startup.sh
#head logs/catalina.out
如果看到下面的啟動日志,表示成功。
2009-12-24 17:34:32 org.apache.coyote.http11.Http11AprProtocol init