java - 在 java.library.path 上找不到基于 APR 的 Apache Tomcat Native 库,它允许在生产环境中实现最佳性能

标签 java tomcat intellij-idea server catalina

当我调试 tomcat 时,broswer 启动但得到 404:

HTTP Status 404 - /

type Status report

message /

description The requested resource is not available.

Apache Tomcat/7.0.75

Tomcat Catalina Log 和 Server Log 都有以下错误:

The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /Users/luowensheng/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.

我搜索了SO,找到了一个类似的帖子:

What does "The APR based Apache Tomcat Native library was not found" mean?

我的软件环境是:

Mac OS 
IntelliJ IDEA

最佳答案

HTTP Status 404 - /

这个错误是由很多问题引起的,例如:

  1. 此错误主要是由于路径无效而引发的。确保存在以下文件夹:
>  $cataline_home/webapps/your-project|
>                                         -->html,css,images, etc.                                       
>                                         -->WEB-INF|
>                                                    -->classes (your java files)
>                                                    -->lib     (your libraries)
  1. 确保您的机器上安装了 java。您可以通过在命令提示符下简单地运行 javac 或使用 java -version
  2. 来检查它
  3. 您输入了错误的 URL 地址或不完整的 URL 或没有 tomcat 端口的 URL
  4. 还要确保您在 web.xml 文件中正确添加了类

installing Tomcat APR in MAC is HERE and for Linux following is tested by myself

信息:在 java.library.path 上未找到基于 APR 的 Apache Tomcat Native 库,它允许在生产环境中实现最佳性能

安装 APR 的先决条件 APR图书馆 APR-util 库 OpenSSL 库

yum install openssl-devel
yum groupinstall "Development Tools"

mkdir tomcat-apr
cd tomcat-apr
wget http://www.us.apache.org/dist//apr/apr-1.5.2.tar.gz
tar -zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure
make
make install

默认安装路径为/usr/local/apr

Download and Install APR-util                  
wget http://www.eu.apache.org/dist//apr/apr-util-1.5.4.tar.gz
tar -zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --with-apr=/usr/local/apr
make
make install

默认安装路径为/usr/local/apr/lib 为 Tomcat (libtcnative) 使用的 APR 安装 JNI Wrapper

cd $CATALINA_HOME/bin
tar -zxvf tomcat-native.tar.gz
cd tomcat-native-1.1.29-src/jni/native
./configure --with-apr=/usr/local/apr --with-java-home=/var/java/jdk1.7.0_45
make
make install

本地库安装在/usr/local/apr/lib 将 APR 与 Tomcat 集成 有两种方法可以设置 Tomcat 与 APR 集成。

一种是在启动Tomcat时可以在bin/catalina.sh中加入如下参数: CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"

另一种是在/etc/profile中添加一个新的环境变量LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

然后通过以下方式使其生效:

source /etc/profile 

重启Tomcat服务后,如果APR安装成功,我们可以在catalina.out日志中看到如下信息。

Oct 07, 2015 8:08:54 AM org.apache.catalina.core.AprLifecycleListener init INFO: Loaded APR based Apache Tomcat Native library 1.1.29 using APR version 1.5.2. Oct 07, 2015 8:08:54 AM org.apache.catalina.core.AprLifecycleListener init INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

关于java - 在 java.library.path 上找不到基于 APR 的 Apache Tomcat Native 库,它允许在生产环境中实现最佳性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42871924/

相关文章:

java - 使用 Java + RestFB

performance - Apache 在 Tomcat 之前安装,有什么好处?

java - 使用spring mvc出现奇怪的404错误

java - 使 servlet 过滤器适用于所有 Web 应用程序

java - 未显示内部类 Intellij IDEA 错误

java - 如何使用 JUnit 对一个 Java 类中的方法进行单元测试,而无需完成模块中的其他类?

java - EC2 上的 JGroups 节点虽然看到对方但不说话

java - 更改选项卡式 Pane 中当前面板的标签

java - 如何在 Android CalendarView 中的深色主题应用程序中显示浅色主题?

android-studio - Jetbrains IDE中的“重新格式化代码”和“重新排列代码”之间有什么区别?