Apache Tomcat Native library 报错

报错内容如下:
INFO: The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]

https://tomcat.apache.org/tomcat-9.0-doc/apr.html
Tomcat 可以通过使用 Apache Portable Runtime 来提供卓越的可扩展性、性能以及更好的集成本地服务器技术。Apache Portable Runtime 是一个高度可移植的库,是Apache HTTP Server 2.x的核心。。APR有许多用途,包括访问高级IO功能(如sendfile、epoll和OpenSSL)、OS级功能(随机数生成、系统状态等)和本地进程处理(共享内存、NT管道和Unix套接字)。
这些特性使Tomcat成为一个通用的web服务器,能够与其他本地web技术更好地集成,并且总体上使Java作为一个成熟的web服务器平台而不仅仅是一个后端技术更为可行。

解决方案:

https://tomcat.apache.org/native-doc/

安装依赖包

ubuntu

sudo apt install libapr1 libapr-dev libaprutil1 libssl-dev libtcnative-1

centos

yum install apr apr-util apr-devel openssl-devel tomcat-native

ubuntu 还需要修改配置文件
在 bin/ 目录下创建文件 setenv.sh,包含如下内容

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib:/usr/lib/x86_64-linux-gnu
export LD_LIBRARY_PATH

原因

找不到对应的lib文件。ubuntu安装的目录不在 java.library.path 内。

附:Apache Tomcat Native Library 编译安装

为什么编译安装呢?
因为系统二进制安装的版本有点低,不符合最新的tomcat版本需要。

native 1.2.35 源码包地址

在tomcat二进制包的 bin/ 目录下 有 tomcat-native.tar.gz 文件,即为当前版本tomcat需要的native library源码包。

解压,并进入源码目录下的 native/ 目录

gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; 
aprConfig="$(command -v apr-1-config)"; 

./configure \
        --build="$gnuArch" \
        --libdir="$TOMCAT_NATIVE_LIBDIR" \
        --prefix="$CATALINA_HOME" \
        --with-apr="$aprConfig" \
        --with-java-home="$JAVA_HOME" \
        --with-ssl \
#  simple
#  ./configure --prefix=$CATALINA_HOME --with-apr=/usr/bin/apr-1-config --with-java-home=$JAVA_HOME --with-ssl=yes 

你可能感兴趣的:(Apache Tomcat Native library 报错)