我正在尝试根据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>
已安装版本
除了上面链接中给出的步骤之外,我在 setenv.sh 文件中使用了以下环境变量,因为给定的 env 不适合我。
export JAVA_OPTS="$JAVA_OPTS -Djava.library.path=$CATALINA_HOME/lib"
如果使用 APR 连接器,则无法使用 Tomcat Native 2.x。坚持使用 Tomcat Native 1.x.