[英]The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path
[英]APR for optimal performance in production environments
我正在 docker 容器中安裝一個 java 應用程序。 它運行良好,但我在日志中保留了這個錯誤:
信息 1 --- [ost-startStop-1] oacatalina.core.AprLifecycleListener :在 java.library.path: [/usr/java/packages /lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr /lib]
所以,我試圖通過遵循this和this來安裝這個 APR 包,並通過在我的 dockerfile 中添加這一行來安裝 tomcat native:
運行 apt-get install -y libtcnative-1
但是,當添加這一行時,我在日志中收到以下消息:
錯誤 1 --- [ost-startStop-1] oacatalina.core.AprLifecycleListener :安裝了基於 APR 的 Apache Tomcat Native 庫的不兼容版本 [1.1.33],而 Tomcat 需要版本 [1.2.14]
我嘗試安裝:
apt-get install -y openjdk-8-jdk libapr1-dev
和
apt-get install -y openjdk-8-jdk libtcnative-1 libapr1-dev
但這些都沒有奏效..我不斷收到相同的消息。
我還嘗試按照此處的第一個答案從源代碼安裝,但這也不起作用。
這是我的 dockerfile 的其余部分:
FROM ubuntu:16.04
RUN apt-get update \
&& apt-get install -y software-properties-common python-software-properties \
&& add-apt-repository ppa:mozillateam/ppa \
&& apt-get update \
&& apt-get install -y firefox firefox-esr
RUN apt-get install -y libtcnative-1 openjdk-8-jdk
任何幫助表示贊賞。 謝謝!
如果有人仍然感興趣,這就是我所做的:
FROM adoptopenjdk/openjdk11:jdk-11.0.1.13 AS build
ADD apr-1.7.0 $HOME/apr-1.7.0
ADD tcnative $HOME/tcnative
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y && \
apt-get -y upgrade && \
apt-get install -y build-essential libssl-dev
WORKDIR $HOME/apr-1.7.0
RUN ./configure && make && make install
WORKDIR $HOME/tcnative
RUN ./configure --with-apr=/usr/local/apr/bin/apr-1-config --with-java-home=$JAVA_HOME --with-ssl=$HOME/OPENSSL --prefix=/usr/local/apr
RUN make && make install
FROM adoptopenjdk/openjdk11:jre-11.0.10_9
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y && \
apt-get -y upgrade && \
apt-get install -y --no-install-recommends libssl-dev x11-apps && \
apt-get clean && \
apt-get autoremove -y --purge && \
rm -rf /var/lib/apt/lists/*
COPY --from=build /usr/local/apr /usr/local/apr
當您調用 java 來運行您的 jar 時,請設置您的庫路徑:
入口點 ["java","-Djava.library.path=/usr/local/apr/lib","-jar","app.jar"]
該應用程序現在啟動並報告正確的庫:
org.apache.catalina.core.AprLifecycleListener - Loaded Apache Tomcat Native library [1.2.31] using APR version [1.7.0].
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.