“基于APR的Apache Tomcat Native库没有find”是什么意思?
我在Windows上使用Eclipse中的Tomcat 7。 启动Tomcat时,我收到以下消息:
在java.library.path中没有find基于APR的Apache Tomcat Native库,它允许在生产环境中获得最佳性能
这是什么意思,我怎样才能提供APR库?
这意味着它正是这样说的:“在基于APR的Apache Tomcat Native库中,在生产环境中实现最佳性能的方法在java.library.path中找不到”
所引用的库被捆绑到通过JNI加载的特定于操作系统的dll(tcnative-1.dll)中。 它允许tomcat使用Java运行时中没有提供的操作系统function(如sendfile,epoll,OpenSSL,系统状态等)。 没有它,Tomcat将运行得很好,但对于一些使用情况,本地库会更快。
如果你真的想要,可以下载tcnative-1.dll
(或者libtcnative.so
for Linux),并把它放到bin文件夹中,并在eclipse中为tomcat服务器的启动configuration添加一个系统属性。
-Djava.library.path=c:\dev\tomcat\bin
除非你正在运行生产服务器,否则不要担心这个消息。 这是一个用来提高性能的库(在生产系统上)。 从基于Apache Portable Runtime(APR)的Tomcat本地库 :
Tomcat可以使用Apache Portable Runtime来提供出色的可伸缩性,性能以及与原生服务器技术的更好集成。 Apache Portable Runtime是一个高度可移植的库,它是Apache HTTP Server 2.x的核心。 APR有许多用途,包括对高级IOfunction(如sendfile,epoll和OpenSSL),操作系统级function(随机数生成,系统状态等)和本地进程处理(共享内存,NTpipe道和Unix套接字)的访问。
在RHEL Linux上只是问题:
yum安装tomcat-native.x86_64
/注意:取决于你的架构64bit或32bit包可能有不同的扩展名/
就这些。 之后你会在日志文件中find下一条信息消息:
INFO:APRfunction:IPv6 [true],sendfile [true],接受filter[false],随机[true]。
所有的操作将比以前明显加快。
在Ubuntu服务器上安装本地库:
sudo apt-get install libtcnative-1
如果这不起作用,需要安装tomcat-native
-
安装Oracle java7:
- sudo add-apt-repository ppa:webupd8team / java
- sudo apt-get update
- sudo apt-get install oracle-java7-installer
- sudo apt-get install oracle-java7-set-default
-
安装tomcat apr:
- wget http://apache.mirror.anlx.net//apr/apr-1.5.0.tar.gz
- tar zxvf apr-1.5.0.tar.gz
- rm apr-1.5.0.tar.gz
- cd apr-1.5.0
- sudo ./configure
- sudo使
- sudo make install
- export LD_LIBRARY_PATH ='$ LD_LIBRARY_PATH:/ usr / local / apr / lib'
-
安装tomcat tomcat-native:
- wget http://mirrors.ukfast.co.uk/sites/ftp.apache.org//tomcat/tomcat-connectors/native/1.1.29/source/tomcat-native-1.1.29-src.tar.gz
- tar zxvf tomcat-native-1.1.29-src.tar.gz
- rm tomcat-native-1.1.29-src.tar.gz
- cd tomcat-native-1.1.29-src / jni / native
- JAVA_HOME = / usr / lib中/ JVM / JAVA -7-预言
- sudo ./configure –with-apr = / usr / local / apr –with-java-home = $ JAVA_HOME
- sudo使
- sudo make install
在debian 8我修复它与安装libapr1-dev
:
apt-get install libtcnative-1 libapr1-dev
有这个问题。 如果你有库,但仍然有这个错误,它可能是一个configuration错误。 您的server.xml
可能会缺less以下行:
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
(或者,也可以注释掉)。 与其他监听<Listener>
一样, <Listener>
是顶级<Server>
的子代。
如果没有<Listener>
行,则不会尝试加载APR库,因此将忽略LD_LIBRARY_PATH
和-Djava.library.path=
设置。
我刚刚通过这个,并configuration了以下内容:
Ubuntu 16.04
Tomcat 8.5.9
Apache2.4.25
APR 1.5.2
Tomcat-native 1.2.10
Java 8
这些是我在这里使用旧post的步骤:
安装包
sudo apt-get update
sudo apt-get install libtcnative-1
validation这些软件包已安装
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install openssl
安装包
sudo apt-get install libssl-dev
安装并编译Apache APR
cd / opt / tomcat / bin
sudo wget http://apache.mirror.anlx.net//apr/apr-1.5.2.tar.gz
sudo tar -xzvf apr-1.5.2.tar.gz
cd apr-1.5.2
sudo ./configure
sudo使
sudo make install
validation安装
cd / usr / local / apr / lib /
LS
你应该看到编译的文件为
libapr-1.la
下载并安装Tomcat Native源码包
cd / opt / tomcat / bin
sudo tar -xzvf tomcat-native-1.2.10-src.tar.gz
cd tomcat-native-1.2.10-src / native
validationJAVA_HOME
sudo pico〜/ .bashrc
导出JAVA_HOME = / usr / lib / jvm / java-8-openjdk-amd64
源〜/ .bashrc
sudo ./configure –with-apr = / usr / local / apr –with-java-home = $ JAVA_HOME
sudo使
sudo make install
使用以下行编辑/opt/tomcat/bin/setenv.sh文件:
sudo pico /opt/tomcat/bin/setenv.sh
export LD_LIBRARY_PATH ='$ LD_LIBRARY_PATH:/ usr / local / apr / lib'
重启tomcat
sudo服务tomcat重启
当tommy找不到这个类的时候,我也遇到了同样的问题。 尝试查看其他日志文件。 有时在不同的日志文件中没有发现class def错误:
- tomcat8,标准输出
- tomcat8-标准错误
- 本地主机
如果您没有安装Tomcat Native库,那么:
sudo apt-get install libtcnative-1
如果它仍然存在旧版本升级:
sudo apt-get upgrade libtcnative-1