The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path 問題解決記錄


1.問題

啟動Tomcat之后,在瀏覽器輸入IP后顯示503,查看catalina.log發現報錯:

2.問題定位:缺少 tomcat-native library

就是說 缺少Tomcat Native librayr的支持, 因此需要安裝 Tomcat Native library。
安裝參考 Tomcat-APR/tomcat-native-1.2.23-src源碼安裝和配置The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path
當然二者都是參考官網 來安裝 tomcat-native庫:

3.安裝tomcat-native 步驟

安裝環境:

  • Linux版本:CentOS Linux release 7.9.2009
  • apache-tomcat-9.0.41
  • openjdk version "1.8.0_292"

3.1 確認gcc、apr、apr-devel、apr-util 以及 JDK是否已經安裝過,沒有就需要安裝

# 1.確認 gcc, 若已安裝就會顯示安裝的版本
rpm -qa gcc
# gcc-4.8.5-28.el7_5.1.x86_64
#沒有就安裝

yum install gcc
# 2.確認 apr, 沒有就 yum install gcc
rpm -qa apr
# 3.確認 apr-devel,沒有就 yum install apr-devel
rpm -qa apr-devel
# 4.確認 apr-util, 沒有就 yum install apr-util
rpm -qa apr-util
# 5. 確認 JDK,沒有就 yum install -y java-1.8.0-openjdk
which java 
java -version

3.2. 源碼安裝tomcat-native-1.2.23

下載地址:官網

下載到 /opt 目錄下,tar zxvf tomcat-native-1.2.23-src.tar.gz 解壓 ,進入 tomcat-native-1.2.23-src/native ,然后參考官方給的模板執行:

./configure --with-apr=/usr/bin/apr-1-config \
            --with-java-home=/home/jfclere/JAVA/jdk1.7.0_80/ \
            --with-ssl=yes \
            --prefix=$CATALINA_HOME
  • --with-java-home:jdk的安裝目錄,筆者是 yum install -y java-1.8.0-openjdk 安裝的,因此是 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
  • --prefix:Tomcat安裝目錄
## 筆者的命令
./configure --with-apr=/usr/bin/apr-1-config \
            --with-java-home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64 \
            --with-ssl=yes \
            --prefix=/usr/local/apache-tomcat-9.0.41

然后 編譯安裝 make && make install 成功后會看到如下的內容:

Libraries have been installed in:
   /usr/local/apache-tomcat-9.0.41/lib
   
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

即庫已經安裝到之前 --prefix指定目錄下的 lib子目錄中,同時還需要以下操作:

修改 /usr/local/apache-tomcat-9.0.41/bin/catalina.sh ,在 文件末尾添加

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apache-tomcat-9.0.41/lib
export LD_LIBRARY_PATH

再在 /usr/local/apache-tomcat-9.0.41/conf/server.xml 配置 Tomcat Connector,將 protocol修改成如下內容:

<Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol"
               connectionTimeout="20000"
               redirectPort="8443" />

重啟Tomcat服務器 問題就解決了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM