Tomcat 启动提示未发现 APR 的解决方法
Tomcat 啟動出現信息如下:
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:XXXX
?
出現原因分析:
Tomcat建議使用apache的apr,來更好的運行Tomcat;
?
----------------------------------------------apache的apr 的介紹 ---------------------------------------------------
APR(Apache portable Run-time libraries,Apache可移植運行庫)的目的如其名稱一樣,主要為上層的應用程序提供一個可以跨越多操作系統平臺使用的底層支持接口庫。在早期 的Apache版本中,應用程序本身必須能夠處理各種具體操作系統平臺的細節,并針對不同的平臺調用不同的處理函數。
隨著Apache的進一步開發,Apache組織決定將這些通用的函數獨立出來并發展成為一個新的項目。這樣,APR的開發就從Apache中獨立出來,Apache僅僅是使用 APR而已。
APR使得平臺細節的處理進行下移。對于應用程序而言,它們根本就不需要考慮具體的平臺,不管是Unix、Linux還是Window,應用程序執行的接口基本都是統一一致的。因此對于APR而言,可移植性和統一的上層接口是其考慮的一個重點。而APR最早的目的并不是如此,它最早只是希望將Apache中用到的所有代碼合并為一個通用的代碼庫,然而這不是一個正確的策略,因此后來APR改變了其目標。有的時候使用公共代碼并不是一件好事,比如如何將一個請求映射到線程或者進程是平臺相關的,因此僅僅一個公共的代碼庫并不能完成這種區分。APR的目標則是希望安全合并所有的能夠合并的代碼而不需要犧牲性能。
APR的最早的一個目標就是為所有的平臺(不是部分)提供一個公共的統一操作函數接口,這是一個非常了不起的目的,當然也是不現實的一個目標。我們不可能支持所有平臺的所有特征,因此APR目前只能為大多數平臺提供所有的APR特性支持,包括Win32、OS/2、BeOS、Darwin、Linux等等。為了能夠實現這個目標,APR開發者必須為那些不能運行于所有平臺的特性創建了一系列的特征宏(FEATURE MACROS)以在各個平臺之間區分這些特征。這些特征宏定義非常簡單,通常用APR_HAS_FEATURE參數設置:
如果某個平臺具有這個特性,則該宏必須設置為true,比如Linux和window都具有內存映射文件,同時APR提供了內存映射文件的操作接口,因此在這兩個平臺上,APR_HAS_MMAP宏必須設置,同時ap_mmap_*函數應該將磁盤文件映射為內存并返回適當的狀態碼。如果你的操作系統并不支持內存映射,那么APR_HAS_MMAP必須設置為0,而且所有的ap_mmap_*函數也可以不需要定義。第二步就是對于那些在程序中使用了不支持的函數必須提出警告。
?
解決方法:
下載與你Tomcat對應版本的?tcnative-1.dll,放到apache-tomcat-7.0.57\bin 目錄下,重啟tomcat。
下載地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/native/?
如果你不清楚版本,你隨便下載一個版本,放進目錄里面,在重啟tomcat 的時候,會有提示你合適的?tcnative-1.dll 版本。
?
1.
?
2.
3.
4.
?
轉載于:https://www.cnblogs.com/java-class/p/4280037.html
總結
以上是生活随笔為你收集整理的Tomcat 启动提示未发现 APR 的解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css语法和JS语法的对比
- 下一篇: 菜根谭#288