programing

"APR 기반 Apache Tomcat Native 라이브러리를 찾을 수 없음"은 무엇을 의미합니까?

testmans 2023. 5. 15. 21:23
반응형

"APR 기반 Apache Tomcat Native 라이브러리를 찾을 수 없음"은 무엇을 의미합니까?

윈도우에서 이클립스의 Tomcat 7을 사용하고 있습니다.Tomcat을 시작할 때 다음과 같은 정보 메시지가 표시됩니다.

운영 환경에서 최적의 성능을 제공하는 APR 기반 Apache Tomcat Native 라이브러리를 java.library.path에서 찾을 수 없습니다.

이것은 무엇을 의미하며 APR 라이브러리를 어떻게 제공할 수 있습니까?

"운영 환경에서 최적의 성능을 제공하는 APR 기반 Apache Tomcat Native 라이브러리를 java.library.path에서 찾을 수 없습니다."라는 정확한 의미입니다.

참조된 라이브러리는 JNI를 통해 로드된 OS별 dll(tcnative-1.dll)에 번들되어 있습니다.Tomcat은 Java Runtime에서 제공되지 않는 OS 기능(예: sendfile, epoll, OpenSSL, 시스템 상태 등)을 사용할 수 있습니다.Tomcat은 그것 없이도 잘 작동할 것이지만, 일부 사용 사례에서는 기본 라이브러리를 사용하면 더 빠를 것입니다.

원하는 경우 (또는 Linux용)을 다운로드하여 bin 폴더에 넣고 이클립스 형식으로 Tomcat 서버의 시작 구성에 시스템 속성을 추가합니다.

 -Djava.library.path=c:\dev\tomcat\bin

프로덕션 서버를 실행하지 않는 한 이 메시지에 대해 걱정할 필요가 없습니다.이 라이브러리는 프로덕션 시스템의 성능을 향상시키는 데 사용됩니다.Apache Portable Runtime(APR) 기반 Tomcat용 네이티브 라이브러리에서:

Tomcat은 Apache Portable Runtime을 사용하여 뛰어난 확장성, 성능 및 기본 서버 기술과의 더 나은 통합을 제공할 수 있습니다.Apache Portable Runtime은 Apache HTTP Server 2.x의 핵심인 휴대성이 뛰어난 라이브러리입니다. APR은 고급 IO 기능(예: sendfile, epoll 및 OpenSSL), OS 수준 기능(난수 생성, 시스템 상태 등) 및 기본 프로세스 처리(공유 메모리,NT 파이프 및 유닉스 소켓).

RHEL Linux에서는 다음과 같은 문제가 발생합니다.

yum install tomcat-native.x86_64

/참고: 아키텍처에 따라 64비트 또는 32비트 패키지의 확장자가 다를 수 있습니다/

그게 다야.그런 다음 로그 파일에서 다음과 같은 정보 메시지를 찾을 수 있습니다.

INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

모든 작업이 이전보다 눈에 띄게 빨라질 것입니다.

다음을 사용하여 Ubuntu 서버에 기본 라이브러리 설치:

sudo apt-get install libtcnative-1

그래도 작동하지 않으면 Tomcat-Native를 설치해야 합니다.

  1. Oracle java7 설치:

    • sudo add-apt-contributory ppa:webupd8 팀/세미나
    • sudo apt-get 업데이트
    • sudo apt-get install oracle-sys7-dll
    • sudoapt-get install oracle-sys7-set-default
  2. Tomcatap 설치:

    • wget http://apache.mirror.anlx.net/ /sys/sys-1.5.0.tar.gz
    • targzxvf apr-1.5.0.tar.gz
    • rm apr-1.5.0.tar.gz
    • cd apr-1.5.0
    • sudo./구성
    • sudo make
    • sudo make 설치
    • LDAP_LIBRARY_PATH='$LD_LIBRARY_PATH:/usr/local/apr/lib' 내보내기
  3. tomcat tomcat-native 설치:

이 작업을 수행하고 다음과 같이 구성했습니다.

우분투 16.04

Tomcat 8.5.9

Apache 2.4.25

APR 1.5.2

Tomcat-네이티브 1.2.10

자바 8

이전 게시물을 기반으로 사용한 단계는 다음과 같습니다.

패키지 설치

sudo apt-get update
sudo apt-get install libtcnative-1

이러한 패키지가 설치되어 있는지 확인합니다.

sudo apt-get install make 
sudo apt-get install gcc
sudo apt-get install openssl

패키지 설치

sudo apt-get install libssl-dev

Apache APR 설치 및 컴파일

cd /opt/tomcat/bin
sudo wget http://apache.mirror.anlx.net//apr/apr-1.5.2.tar.gz
sudo tar -xzvf apr-1.5.2.tar.gz
cd apr-1.5.2
sudo ./configure
sudo make
sudo make install

설치 확인

cd /usr/local/apr/lib/
ls 

컴파일된 파일은 다음과 같습니다.

libapr-1.la

Tomcat Native 소스 패키지 다운로드 및 설치

cd /opt/tomcat/bin
sudo wget https://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.10/source/tomcat-native-1.2.10-src.tar.gz
sudo tar -xzvf tomcat-native-1.2.10-src.tar.gz
cd tomcat-native-1.2.10-src/native

JAVA_ 확인집입니다

sudo pico ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
source ~/.bashrc
sudo ./configure --with-apr=/usr/local/apr --with-java-home=$JAVA_HOME
sudo make
sudo make install

다음 행을 사용하여 /opt/tomcat/bin/setenv.sh 파일을 편집합니다.

sudo pico /opt/tomcat/bin/setenv.sh
export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:/usr/local/apr/lib'

Tomcat 다시 시작

sudo service tomcat restart

Mac OS X의 경우:

$ brew install tomcat-native
==> tomcat-native
In order for tomcat's APR lifecycle listener to find this library, you'll
need to add it to java.library.path. This can be done by adding this line
to $CATALINA_HOME/bin/setenv.sh

  CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/opt/tomcat-native/lib"

If $CATALINA_HOME/bin/setenv.sh doesn't exist, create it and make it executable.

그런 다음 이클립스의 Tomcat 인수에 추가합니다([서버] > [시작 구성 열기] > [인수] 탭 > [VM 인수] 두 번 클릭).

-Djava.library.path=/usr/local/opt/tomcat-native/lib

데비안 8에서 나는 그것을 설치하는 것으로 고칩니다.libapr1-dev:

apt-get install libtcnative-1 libapr1-dev

이 문제도 있었습니다.라이브러리가 있지만 이 오류가 계속 발생하면 구성 오류일 수 있습니다.당신의.server.xml다음 행이 누락되었을 수 있습니다.

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

(또는 주석을 달 수도 있습니다.) 것이.<Listener> 높은 수준의 입니다.<Server>.

다음을 제외하고는<Listener>, APR 브이로드는없시습니다도가려하라를리러▁line,다없▁there,.LD_LIBRARY_PATH그리고.-Djava.library.path=설정이 무시됩니다.

Java 8에서 11로 업그레이드할 때 이 문제가 발생했습니다.이 종속성을 추가한 후, 내 앱은 문제 없이 실행되었습니다.

<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.25.0-GA</version>
</dependency>

저는 톰이 수업을 찾을 수 없을 때 같은 문제를 겪었습니다.다른 로그 파일을 봅니다.다른 로그 파일에 클래스 정의를 찾을 수 없음 오류가 나타날 수 있습니다.

  • 톰캣8-stdout
  • tomcat8-stderr
  • 로컬 호스트

Tomcat Native 라이브러리가 없는 경우 다음을 사용하여 설치합니다.

sudo apt-get install libtcnative-1

아직 이전 버전이 있는 경우 다음을 사용하여 업그레이드합니다.

sudo apt-get upgrade libtnative-1

내 문제는 tomcat에서 eclipse 클래스 경로로 라이브러리를 추가하는 것이었습니다. 나는 단지 eclipse 오른쪽 클릭으로 프로젝트를 진행하고 갈 것입니다.debug configuration -> classpath -> Add External JARs모든 jars 파일 추가apache-tomcat-7.0.35\bin이것은 나의 문제였고 나에게 효과가 있었습니다.
여기에 이미지 설명 입력

미래의 독자를 위해:Spring STS에서 Spring Boot 애플리케이션을 실행하려고 할 때 저 자신이 이 문제에 직면했습니다.이 문제는 처음에 다시 표면화되지 않았습니다.저는 어느 화창한 날 이 특별한 오류가 발생하기 시작할 때까지 꽤 오랫동안 아무런 문제 없이 제 프로젝트를 진행할 수 있었습니다.

제가 기억하는 바로는, 저는 제 프로젝트의 구성을 변경하지 않았고, 사용 중인 Java/Tomcat 버전도 변경하지 않았습니다.

Tomcat 네이티브 라이브러리를 설치하는 것과 관련된 어떠한 논의/제안도 이해가 되지 않았습니다. 이전에 프로젝트가 이미 잘 작동했기 때문입니다.

효과적인 솔루션:

그래서 마지막으로 저는 제 프로젝트를 삭제하고 다시 가져올 생각을 했습니다.

Spring STS에서 프로젝트를 삭제하고 Spring STS를 다시 시작한 다음 프로젝트를 다시 가져왔습니다.그것은 매력적으로 작용했고 그 이후로 결코 문제에 직면하지 않았습니다.

IDE를 다시 시작하고 프로젝트를 다시 가져오기 전에 프로젝트에서 생성된 파일/폴더(있는 경우)를 삭제할 수도 있습니다.

저는 아직도 가끔 이 프로젝트에 참여하고 있으며 지금까지 이 문제에 직면한 적이 없습니다.현재 저의 개발 IDE는 IntelliJ입니다.

IDE 고유의 오류인지 잘 모르겠습니다.

언급URL : https://stackoverflow.com/questions/8716259/what-does-the-apr-based-apache-tomcat-native-library-was-not-found-mean

반응형