web-dev-qa-db-ja.com

「APRベースのApache Tomcatネイティブライブラリが見つかりませんでした」とはどういう意味ですか?

Windows上のEclipseでTomcat 7を使用しています。 Tomcatを起動すると、次の情報メッセージが表示されます。

実稼働環境で最適なパフォーマンスを可能にするAPRベースのApache TomcatネイティブライブラリがJava.library.pathに見つかりませんでした

これは何を意味し、APRライブラリをどのように提供できますか?

85
fresh_dev

「生産環境で最適なパフォーマンスを実現するAPRベースのApache TomcatネイティブライブラリがJava.library.pathに見つかりませんでした」

参照されるライブラリは、JNIを介してロードされるOS固有のdll(tcnative-1.dll)にバンドルされています。 Tomcatは、Javaランタイムで提供されていないOS機能(sendfile、epoll、OpenSSL、システムステータスなど)を使用できます。 Tomcatはこれなしでも正常に動作しますが、一部のユースケースでは、ネイティブライブラリの方が高速になります。

本当に必要な場合は、 tcnative-1.dll(またはLinuxの場合はlibtcnative.so をダウンロードしてbinフォルダーに入れ、EclipseでTomcatサーバーの起動構成にシステムプロパティを追加します。

 -Djava.library.path=c:\dev\Tomcat\bin
102
Geert Pante

運用サーバーを実行している場合を除き、このメッセージについて心配する必要はありません。これは、パフォーマンスを向上させるために使用されるライブラリです(運用システム)。 Apache Portable Runtime(APR)ベースのTomcat用ネイティブライブラリ

Tomcatは、Apache Portable Runtimeを使用して、優れたスケーラビリティ、パフォーマンス、およびネイティブサーバーテクノロジーとのより良い統合を提供できます。 Apache Portable Runtimeは、Apache HTTPサーバー2.xの中心にある移植性の高いライブラリです。 APRには、高度なIO機能(sendfile、epoll、OpenSSLなど)、OSレベルの機能(乱数生成、システムステータスなど)、およびネイティブプロセス処理(共有メモリ、NTパイプとUnixソケット)。

29
Matthew Farwell

RHEL Linuxでは、次を発行するだけです。

yum install Tomcat-native.x86_64

/注:アーキテクチャに応じて、64ビットまたは32ビットパッケージの拡張子は異なる場合があります/

以上です。その後、ログファイルに次の情報メッセージが表示されます。

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

すべての操作は以前よりも著しく高速になります。

24
user911734

以下を使用して、Ubuntuサーバーにネイティブライブラリをインストールします。

Sudo apt-get install libtcnative-1

それでも動作しない場合は、Tomcatネイティブをインストールする必要があります

  1. Oracle Java7をインストールします。

    • Sudo add-apt-repository ppa:webupd8team/Java
    • 須藤apt-getアップデート
    • Sudo apt-get install Oracle-Java7-installer
    • Sudo apt-get install Oracle-Java7-set-default
  2. Tomcat aprをインストールします。

  3. Tomcat tomcat-nativeをインストールします。

19
Amadu Bah

私はこれを試し、次のように構成しました:

Ubuntu 16.04

Tomcat 8.5.9

Apache2.4.25

APR 1.5.2

Tomcatネイティブ1.2.10

Java 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_HOMEを確認します

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

6
Russell Rottach

この問題もありました。 doライブラリを持っているが、まだこのエラーがある場合は、構成エラーである可能性があります。 server.xmlに次の行がない場合があります。

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

(または、コメント化されている場合があります)。この<Listener>は、他のリスナーと同様に、トップレベルの<Server>の子です。

<Listener>行がないと、APRライブラリーをロードする試みがないため、LD_LIBRARY_PATHおよび-Djava.library.path=の設定は無視されます。

5
MSalters

debian 8では、libapr1-devをインストールすることで修正します。

apt-get install libtcnative-1 libapr1-dev
4
Hasan Ramezani

Tomcatネイティブライブラリをインストールしていない場合は、次を使用してインストールします。

Sudo apt-get install libtcnative-1

そして、それがまだある場合、古いバージョンはそれをアップグレードします:

Sudo apt-get upgrade libtcnative-1

0
Dejan

この問題が発生しましたJava 8から11へのアップグレード。この依存関係を追加した後、私のアプリは問題なく起動しました:

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

Tomсatがクラスを見つけられなかったとき、私は同じ問題を抱えていました。他のログファイルを表示してみてください。異なるログファイルにNo class def foundエラーが表示される場合があります。

  • Tomcat8-stdout
  • Tomcat8-stderr
  • ローカルホスト
0
Koss