Pages

2010年12月31日 星期五

Apache Tomcat Native library which allows optimal performance

利用用Eclipse 和tomcat 6.0,運行tomcat時候出現如下問題:
tomcat6.0
The Apache Tomcat Native library which allows optimal performance in
production environments was not found on the java.library.path

這是一個跟ARP有關的問題

APR(Apache
portable Run-time libraries,Apache可移植運行庫)
,
主要為上層的應用程序提供一個可以跨越多操作系統平台使用的底層支持接口庫。在早期Apache版本中,應用程序本身必須能夠處理各種具體操作系統平台的細節,並針對不同的平台調用不同的處理函數。隨著Apache的進一步開發,Apache組織決定將這些通用的函數獨立出來並發展成為一個新的項目。這樣,APR的開發就從Apache中獨立出來,Apache僅僅是使用APR而已。目前APR主要還是由Apache使用,不過由於APR的較好的移植性,因此一些需要進行移植的C程序也開始使用APR,開源項目比如Flood loadertester(http://httpd.apache.org/test /flood/,該項目用於服務器壓力測試,不僅僅適用於Apache)、FreeSwitch(www.freeswitch.org),JXTA-C(http://jxta-c.jxta.org,C版本的JXTA點對點平台實現);商業的項目則包括Blogline(http://www.bloglines.com/,covalent(http:
//www.covalent.net)等等。APR使得平台細節的處理進行下移。對於應用程序而言,它們根本就不需要考慮具體的平台,不管是Unix、Linux還是Window,應用程序執行的接口基本都是統一一致的。因此對於APR而言,可移植性和統一的上層接口是其考慮的一個重點。而APR最早的目的並不是如此,它最早只是希望將Apache中用到的所有代碼合併為一個通用的代碼庫,然而這不是一個正確的策略,因此後來APR改變了其目標。有的時候使用公共代碼並不是一件好事,比如如何將一個請求映射到線程或者進程是平台相關的,因此僅僅一個公共的代碼庫並不能完成這種區分。
APR的目標則是希望安全合併所有的能夠合併的代碼而不需要犧牲性能。APR的最早的一個目標就是為所有的平台(不是部分)提供一個公共的統一操作函數接口,這是一個非常了不起的目的,當然也是不現實的一個目標。我們不可能支持所有平台的所有特徵,因此APR目前只能為大多數平台提供所有的APR特性支持,包括Win32、OS/2、BeOS、Darwin、Linux等等。為了能夠實現這個目標,APR開發者必須為那些不能運行於所有平台的特性創建了一系列的特徵宏(FEATUREMACROS)以在各個平台之間區分這些特徵。


[解決辦法]
1. 到 [http://www.apache.org/dist/tomcat/tomcat-connectors/native/] 下載 [tcnative-1.dll]
2. 放到 [\TOMCAT_HOME\bin\] 下,重起eclipse 。

note: 放在 [windows\system32\下],應該也是可以。

0 意見: