Tomcat:未找到允许使用 OpenSSL 的本机库

Pro*_*ton 11 java ubuntu tomcat

我刚刚在 Ubuntu 18.04 上使用 Tomcat 9 设置了一个新的 Java 项目。

但是,当我使用命令启动 Tomcat 服务器时

sudo systemctl restart tomcat
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

在 java.library.path 上找不到允许使用 OpenSSL 的 Apache Tomcat Native 库

我仍然可以弄清楚问题出在哪里。

Tha*_*hHH 5

您需要tomcat-native-1.2.31按照以下步骤从源代码安装:

  1. 安装工具(如果已经存在则跳过)
yum install gcc apr-devel apr-util
Run Code Online (Sandbox Code Playgroud)
  1. 从官方网站下载 tomcat-native到/tmp文件夹
cd /tmp
wget https://mirror-hk.koddos.net/apache/tomcat/tomcat-connectors/native/1.2.31/source/tomcat-native-1.2.31-src.tar.gz
Run Code Online (Sandbox Code Playgroud)
  1. 解压文件
tar zxvf tomcat-native-1.2.31-src.tar.gz
Run Code Online (Sandbox Code Playgroud)
  1. 配置(确保设置了 JAVA_HOME 和 CATALINA_HOME)
cd tomcat-native-1.2.31-src/native

./configure --with-apr=/usr/bin/apr-1-config \
            --with-java-home=$JAVA_HOME \
            --with-ssl=yes \
            --prefix=$CATALINA_HOME
Run Code Online (Sandbox Code Playgroud)
  1. 编译安装
make & make install
Run Code Online (Sandbox Code Playgroud)
  1. 编辑$CATALINA_HOME/bin/setenv.sh(如有必要,创建文件)并将 tc-native 库的路径添加到 LD_LIBRARY_PATH。
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
export LD_LIBRARY_PATH

Run Code Online (Sandbox Code Playgroud)

它正在发挥作用!


Pro*_*ton 0

我明白问题出在哪里了。

我已经在文件中设置了SSL/TLS/HTTPS连接协议opt/tomcat/conf/server.xml

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" >
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
    <SSLHostConfig>
        <Certificate certificateKeyFile="conf/key.key"
                     certificateFile="conf/cert.crt"
                     certificateChainFile="conf/chain.crt"
                     type="RSA" />
    </SSLHostConfig>
</Connector>
Run Code Online (Sandbox Code Playgroud)

但是*.war要使用连接的文件没有放在opt/tomcat/webapps目录中。

我是这样解决的

我只是将*.war文件添加到 tomcat 的目录中opt/tomcat/webapps,然后使用以下命令重新启动 tomcat 服务器:

sudo systemctl restart tomcat
Run Code Online (Sandbox Code Playgroud)

一切都很好。

就这样。

我希望这有帮助

  • 您的回答绝对与 APR/OpenSSL 问题无关。 (19认同)