设为首页 收藏本站
查看: 2149|回复: 0

[经验分享] tomcat启动报错APR问题

[复制链接]

尚未签到

发表于 2018-11-30 07:18:43 | 显示全部楼层 |阅读模式

背景
  很多的生产环境项目都在使用tomcat,所以要经常的跟tomcat打交道,排错是家常便饭。本博文主要是是介绍关于tomcat启动时报APR错误,报错信息如下:
02-Aug-2017 18:13:00.769 INFO [main] 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/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]  

apr官网简介
  Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术。APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP Server 2.x的核心。APR有很多用途,包括访问高级IO功能(例如sendfile,epoll和OpenSSL),OS级别功能(随机数生成,系统状态等等),本地进程管理(共享内存,NT管道和UNIX sockets)。
  这些功能可以使Tomcat作为一个通常的前台WEB服务器,能更好地和其它本地web技术集成,总体上让Java更有效率作为一个高性能web服务器平台而不是简单作为后台容器。在产品环境中,特别是直接使用Tomcat做WEB服务器的时候,应该使用Tomcat Native来提高其性能。
  概括起来就是如何在Tomcat中使用JNI的方式来读取文件以及进行网络传输。这个东西可以大大提升Tomcat对静态文件的处理性能,同时如果你使用了HTTPS方式 传输的话,也可以提升SSL的处理性能。
  官网链接
  http://tomcat.apache.org/tomcat-7.0-doc/apr.html
  http://tomcat.apache.org/tomcat-8.5-doc/apr.html

环境说明
  下面是以已经安装好JDK和tomcat为前提,我的环境如下
  Centos7.3_x64
  Tomcat8.5.16
  Jdk1.8.0_131
安装
  本文中涉及的安装包打包下载地址:
  http://down.运维网.com/data/2331074
一、windows下安装
  直接拷贝tcnative-1.dll到TOMCAT_HOME/bin目录下,启动即可
  下载地址: http://archive.apache.org/dist/tomcat/tomcat-connectors/native/

二 、linux下安装
  

2.1下载安装包
  下载地址: http://apr.apache.org/
  http://www.openssl.org/
  apr-1.6.2.tar.gz
  apr-iconv-1.2.1.tar.gz
  apr-util-1.6.0.tar.gz
  openssl-1.0.2l.tar.gz
2.2 安装apr插件
  1)安装apr
  tar zxvf apr-1.6.2.tar
  cd apr-1.6.2
  ./configure --prefix=/usr/local/apr
  make
  make install
  2)安装apr-iconv
  程序代码
  tar -zxvf apr-iconv-1.2.1.tar.gz
  cd apr-iconv-1.2.1
  ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
  make
  make install
  3)安装apr-util
  tar zxvf apr-util-1.6.0.tar.gz
  cd apr-util-1.6.0
  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv
  make
  make install
  4)安装tomcat-native
  (此包tomcat自带,在bin目录下)
  tar zxvf tomcat-native.tar.gz
  cd tomcat-native-1.2.12-src/native
  ./configure --with-apr=/usr/local/apr --with-java-home= /usr/java/jdk1.8.0_131 --with-ssl=/usr/local/openssl
  make
  make install
  备注:编译时报错openssl版本有问题,请参考问题汇总问题3
  5)添加环境变量
  vi /etc/profile #在他文件末尾处添加下面的变量
  # apr
  export LD_LIBRARY_PATH=/usr/local/apr/lib
  立即生效
  source /etc/profile
  使用./catalina configtest检测问题,报错已经消失。
  正常信息显示如下:
02-Aug-2017 18:17:13.908 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR
based Apache Tomcat Native library [1.2.12] using APR version [1.6.2].
02-Aug-2017 18:17:13.908 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR
capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
02-Aug-2017 18:17:13.908 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL
configuration: useAprConnector [false], useOpenSSL [true]
02-Aug-2017 18:17:13.922 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL
successfully initialized [OpenSSL 1.0.2l 25 May 2017]问题汇总
1.如果经过上述部署后,还是报错?
  复制/usr/local/apr/lib/文件到/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib任何目录即可。
2.错误:SEVERE: Failed to initialize the SSLEngine?
SEVERE: Failed to initialize the SSLEngine.
org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform  请关闭SSL侦听,除非你有使用SSL
  
3.报错openssl版本有问题?
  编译native时,报错openssl版本有问题,所以此时只能先解决openssl的问题。
  出现错误:configure: error: Your version of OpenSSL is not compatible with this version of tcnative
  

  tar zxf openssl-1.0.2l.tar.gz
  ./config –prefix=/usr/local/openssl –fPIC
  #加上-fPIC参数,否则编译native的时候会报错,如附一
  make
  make install
  

  附一:编译native报错
/usr/local/openssl/lib/libssl.a(s3_meth.o): relocation R_X86_64_32
against `.rodata' can not be used when making a shared object; recompile
with –fPIC
/usr/local/openssl/lib/libssl.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[1]: *** [libtcnative-1.la] Error 1
make[1]: Leaving directory `/usr/local/tomcat-native-1.2.8-src/native'
make: *** [all-recursive] Error



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-641311-1-1.html 上篇帖子: 开启并设置tomcat的访问日志 下篇帖子: Zabbix 3.0 监控Tomcat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表