“基于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

  1. 安装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
  2. 安装tomcat apr:

  3. 安装tomcat tomcat-native:

在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 wget https://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.10/source/tomcat-native-1.2.10-src.tar.gz

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

    Interesting Posts