Tomcat 9 APR 连接器无法初始化组件 java.lang.UnsatisfiedLinkError

问题描述 投票:0回答:1

我正在尝试根据Tomcat ans APR lib:需要不可用的APR/本机库中给出的步骤将APR连接器与Tomcat 9.x一起使用来安装APR本机库。但运行应用程序时出现以下错误。

org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector["https-openssl-apr-8443"]]
    java.lang.UnsatisfiedLinkError: 'long org.apache.tomcat.jni.Address.info(java.lang.String, int, int, int, long)'
        at org.apache.tomcat.jni.Address.info(Native Method)
        at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:361)
        at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1332)
        at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1345)
        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:654)
        at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:75)
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:1009)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:554)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1039)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:724)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:746)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:307)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:477)

服务器.xml

<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true">
      <SSLHostConfig protocols="TLSv1.2+TLSv1.3" sslProtocol="TLS">
           <Certificate certificateKeystoreFile="conf/keystore.p12"
                certificateKeystorePassword="password" certificateKeystoreType="PKCS12"/>
      </SSLHostConfig>
</Connector>

已安装版本

  • Java 11
  • Apache Tomcat 9.0.84
  • Tomcat 本机 2.0.6
  • 阿帕奇 APR 1.7.4
  • 操作系统:MacOS 14.0 ARM

除了上面链接中给出的步骤之外,我在 setenv.sh 文件中使用了以下环境变量,因为给定的 env 不适合我。

export JAVA_OPTS="$JAVA_OPTS -Djava.library.path=$CATALINA_HOME/lib"
java tomcat tomcat9 apr tcnative
1个回答
0
投票

如果使用 APR 连接器,则无法使用 Tomcat Native 2.x。坚持使用 Tomcat Native 1.x.

© www.soinside.com 2019 - 2024. All rights reserved.