日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tomcat启动报错APR问题

發布時間:2025/3/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tomcat启动报错APR问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

背景

很多的生產環境項目都在使用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.51cto.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/OpenSSLconfiguration:?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

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />

?

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;?recompilewith?–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

轉載于:https://blog.51cto.com/pizibaidu/1953319

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的tomcat启动报错APR问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。