120

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

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

これはどういう意味ですか? APR ライブラリを提供するにはどうすればよいですか?

4

13 に答える 13

129

「本番環境で最適なパフォーマンスを実現する APR ベースの Apache Tomcat ネイティブ ライブラリが java.library.path に見つかりませんでした」という意味です。

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

本当に必要な場合は、tcnative-1.dll(またはlibtcnative.soLinux の場合)をダウンロードして bin フォルダーに配置し、eclipse の tomcat サーバーの起動構成にシステム プロパティを追加します。

 -Djava.library.path=c:\dev\tomcat\bin
于 2012-01-03T19:58:10.203 に答える
33

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

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

于 2012-01-03T19:21:35.327 に答える
33

RHEL Linux では、次のように発行します。

yum install tomcat-native.x86_64

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

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

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

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

于 2013-11-15T16:02:38.973 に答える
13

これを実行して、次のように構成しました。

Ubuntu 16.04

トムキャット 8.5.9

Apache2.4.25

4 月 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 ネイティブ ソース パッケージをダウンロードしてインストールする

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'

トムキャットを再起動する

sudo service tomcat restart

于 2016-12-22T20:26:36.557 に答える
0

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

  • tomcat8-stdout
  • tomcat8-stderr
  • ローカルホスト
于 2015-06-12T06:01:29.190 に答える