Tomcat开启本地库(Apache Tomcat Native Library)支持
操作系统环境:Ubuntu 17 amd64位
软件环境:Tomcat 9
tomcat安装位置:/opt/tomcat
JDK:1.8.144 64位
安装步骤:
1:编译安装
cd /opt/tomcat/bin
tar -zxvf tomcat-native.tar.gz
apt-get install libapr1-dev libssl-dev apt-file ant #安装apr和ssl组件
apt-file update #更新缓存
apt-file list libssl-dev #查询libssl-dev安装路径
apt-file list libapr1-dev #查询apr安装路径
#编译native库
cd tomcat-native-1.2.12-src/native
./configure --with-apr=/usr/bin/apr-config --with-java-home=$JAVA_HOME --with-ssl=yes --prefix=/opt/tomcat
make&&make install 安装
LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/;export LD_LIBRARY_PATH
cd ..
ant compile
ant jar
cp dist/tomcat-native-1.2.12.jar /opt/tomcat/lib/
ant run-echo
2:配置
经过以上编译、安装、测试,tomcat native就配置的差不多了,接下来还有修改一下bin目录下的setclasspath.sh文件
vim /opt/tomcat/setclasspath.sh在其他命令之前加入
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
export LD_LIBRARY_PATH

不加以上环境变量会报错,找不到Apache tomcat Native Library,错误信息:
org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/lib/x86_64-linux-gnu/:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]

如果你配置tomcat为系统服务随机启动,则需要在启动脚本里添加以上环境变量。例如笔者的tomcat随机启动脚本
/etc/init.d/tomcat

查看/opt/tomcat/conf/server.xml里面是否有如下配置,没有则修改或者添加
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
3:重启查看效果
配置完成后重启tomcat容器,使用tail -100f /opt/tomcat/logs/catalina.out,日志里出现以下信息说明配置成功

安装截图






Tomcat开启本地库(Apache Tomcat Native Library)支持的更多相关文章
- tomcat web漏洞整改--Apache Tomcat examples directory vulnerabilities
在利用AWVS等弱扫工具对网站进行漏洞扫描时,经常会出现一些Tomcat漏洞问题,一般在弱扫报告中,都会给出简单的处理办法,但有时这些办法可能不太适合我们,或者在一些正式使用的环境中,不好操作,那么我 ...
- Apache Tomcat examples directory vulnerabilities(Apache Tomcat样例目录session操纵漏洞)复现
目录 Session操控漏洞 示例: Session操控漏洞 在Apache tomcat中,有一个默认的example示例目录,该example目录中存着众多的样例,其中/examples/serv ...
- Java、Apache Tomcat下载与安装及环境变量配置
1.Java JDK 与 Apache Tomcat 下载 JDK 下载 Apache Tomcat 下载 2.安装与环境变量配置 关于 JDK 的安装挺简单的,网上教程也挺多,Tomcat 下载免安 ...
- How to Install Apache Tomcat 8.5 on CentOS 7.3
How to Install Apache Tomcat 8.5 on CentOS 7.3 From: https://www.howtoforge.com/tutorial/how-to-inst ...
- digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-16-04 Intr ...
- CVE-2019-0199:Apache Tomcat DDOS
CVE-2019-0199:Apache Tomcat DDOS 0X00漏洞概述 Apache Tomcat HTTP/2拒绝服务漏洞,该漏洞是由于应用服务允许接收大量的配置流量,并且客户端在没有读 ...
- 【问题解决:信息提示】SpringBoot启动时提示The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path
问题描述 springboot程序在启动时提示信息 [2018-10-24 21:59:05.214] - 440 信息 [restartedMain] --- org.apache.catalina ...
- 关于Tomcat启动时报The APR based Apache Tomcat Native library which allows optimal performanc e in production environments was not found on the java.library.path
错误信息如下 八月 01, 2016 10:11:15 上午 org.apache.catalina.core.AprLifecycleListener initINFO: The APR based ...
- The APR based Apache Tomcat Native library 异常解决办法
tomat在linux服务器上启动报The APR based Apache Tomcat Native library which allows optimal performance in pro ...
随机推荐
- petapoco模板修改
[Reference(ReferenceType.Many, ColumnName = "OneId", ReferenceMemberName = "OneId&quo ...
- sql 实现学生成绩并列排名算法
SELECT uname, score , 排名=(SELECT COUNT(score) FROM FenShu WHERE Score > a.Score) + 1FROM FenShu a ...
- ECMAScript 6 新特性-set。const
一.let命令是es6新增的特性,作用与var命令类似,声明变量,不同之处在于声明的变量的作用域为块级作用域.引入let后带来了很多新的特性. 1作用域,es5之前之后函数作用域和全局作用域,let的 ...
- redis权限认证及登录
找到配置文件 redis.conf 找到 requirepass 字段 去掉注释,改为 requirepass yourpassword 重启redis: service redis rest ...
- (Python基础)最Low三级菜单
#-*-coding:utf-8-*- #_author_: Keep #三级菜单 menu = { '中国':{ '广东省':{ '广州市':{ '海珠区':{}, '荔湾区':{}, '越秀区': ...
- pl-svo在ROS下运行笔记
一.程序更改的思路(参考svo_ros的做法): 1.在ROS下将pl-svo链接成库需要更改相应的CMakeLists.txt文件,添加package.xml文件: 2.注册一个ROS节点使用svo ...
- [持续交付实践] pipeline使用:Shared Libraries
前言 随着pipeline交付流水线在团队中的推广,使用pipeline脚本的job也迅速增加.虽然我们已经基于公司的技术栈特点做了一个尽可能通用的pipeline脚本样例,让搭建者只需要修改几个赋值 ...
- django全流程--青空琉璃
@python相关 1.多线程与多进程 https://zhuanlan.zhihu.com/p/45828888 2.用日志logging模块取代print() https://blog.csdn. ...
- ssm注入失败
今天做ssm整合时候,创建bean/注入一直出错,检查几遍没发现问题,后来发现犯了个低级错误,mapper.xml的<mapper namespace="XXXXX" > ...
- MTK6261之Catcher工具的Database Path
在Catcher使用使用的时候我们常用要选择Database Path 设置数据库的路径,编译自动生成的文件: 设置路径选项: (一般是在对应工程文件的路径 \tst\database_classb) ...