"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를 설치해야 합니다.
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
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' 내보내기
tomcat tomcat-native 설치:
- wget http://mirrors.ukfast.co.uk/sites/ftp.apache.org/ /tomcat/tomcat-connectors/native/1.1.29/source/tomcat-native-1.1.29-src.tar.gz
- targzxvftomcat-native-1.1.29-src.tar.gz
- rm tomcat-native-1.1.29-src.tar.gz
- cd tomcat-native-1.1.29-src/jni/native
- JAVA_HOME=/usr/lib/jvm/java-7-oracle
- sudo ./configure --with-message=/usr/local/message --with-message-home=$JAVA_HOME
- sudo make
- sudo make 설치
이 작업을 수행하고 다음과 같이 구성했습니다.
우분투 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
'programing' 카테고리의 다른 글
Xcode 4.2 디버그가 스택 호출을 나타내지 않음 (0) | 2023.05.20 |
---|---|
열 값을 기준으로 연관 배열 정렬 (0) | 2023.05.20 |
중첩된 폴더에 대해 npm 설치를 실행하는 가장 좋은 방법은 무엇입니까? (0) | 2023.05.15 |
실수로 .idea 디렉터리 파일을 git에 커밋했습니다. (0) | 2023.05.15 |
PostgreSQL 오류 '서버에 연결할 수 없음:해당 파일 또는 디렉터리가 없습니다.' (0) | 2023.05.15 |