首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SpringBoot2.1.1: UnsatisfiedLinkError: org.apache.tomcat.jni.SSL.renegotiatePending

SpringBoot2.1.1: UnsatisfiedLinkError: org.apache.tomcat.jni.SSL.renegotiatePending
EN

Stack Overflow用户
提问于 2018-12-03 14:47:18
回答 3查看 7.1K关注 0票数 5

从SpringBoot2.1.0.RELEASE更新到2.1.1.RELEASE之后,所有HTTPS请求都会失败,出现以下错误:

代码语言:javascript
运行
复制
2018-12-03 14:23:46,089 PID=21726 LEVEL=ERROR THREAD=https-openssl-nio-443-exec-2 LOGGER=org.apache.tomcat.util.net.NioEndpoint METHOD=log:175 MESSAGE="java.lang.UnsatisfiedLinkError: org.apache.tomcat.jni.SSL.renegotiatePending(J)I
        at org.apache.tomcat.jni.SSL.renegotiatePending(Native Method) ~[tomcat-embed-core-9.0.13.jar!/:9.0.13]
        at org.apache.tomcat.util.net.openssl.OpenSSLEngine.getHandshakeStatus(OpenSSLEngine.java:1021) ~[tomcat-embed-core-9.0.13.jar!/:9.0.13]
        at org.apache.tomcat.util.net.openssl.OpenSSLEngine.wrap(OpenSSLEngine.java:457) ~[tomcat-embed-core-9.0.13.jar!/:9.0.13]
        at java.base/javax.net.ssl.SSLEngine.wrap(SSLEngine.java:471) ~[na:na]
        at org.apache.tomcat.util.net.SecureNioChannel.handshakeWrap(SecureNioChannel.java:440) ~[tomcat-embed-core-9.0.13.jar!/:9.0.13]
        at org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:211) ~[tomcat-embed-core-9.0.13.jar!/:9.0.13]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1394) ~[tomcat-embed-core-9.0.13.jar!/:9.0.13]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.13.jar!/:9.0.13]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) [na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [na:na]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.13.jar!/:9.0.13]
        at java.base/java.lang.Thread.run(Thread.java:844) [na:na]
"

恢复到2.1.0。resolves解决了这个问题。

  • 操作系统: Ubuntu 18.04.1 LTS
  • OpenJDK运行时环境(Build10.0.2+13-Ubuntu-1ubuntu0.18.04.4)
  • Libtc困:1.2.16-1 build1

怀疑这与:https://github.com/spring-projects/spring-boot/issues/15261有关

显式地将依赖锁锁定到tomcat-embed core 9.0.12解决了这个问题。

代码语言:javascript
运行
复制
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>9.0.12</version>
        </dependency>
    </dependencies>
</dependencyManagement>

怀疑libtcnative更新也能解决这个问题,但是Ubuntu的当前版本是1.2.16-1build1,因此我们认为这是Spring中的一个回归。

https://packages.ubuntu.com/search?keywords=libtcnative-1

上面列出的依赖项锁解决了问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-03 16:53:10

SpringBoot2.1.1从9.0.12升级到Tomcat 9.0.13。由于使用了这一变化,Tomcat9.0.13需要包含这一变化的Tomcat原住民版本。它可在1.2.18及更高版本中使用。在升级到Tomcat的新补丁版本时,需要使用Tomcat本机的新补丁版本,这是意料之中的。类似地,还可以预期Spring的新补丁版本将更新为其依赖项之一的新补丁版本。

如果您的操作系统没有提供您可以使用的最新Tomcat本地包,我建议您自己构建它。有关此操作的说明可在托姆凯特文献中找到。这比将Tomcat降级为9.0.12更好,因为继续使用旧版本会增加将来受bug或安全漏洞影响的风险。

票数 11
EN

Stack Overflow用户

发布于 2019-04-15 04:51:21

我不能添加注释,所以对于稍微不同的设置(webapp是使用运行在tomcat 8.5上的spring框架开发的),这里是对上述答案的一个简单的补充。

当从源构建tomcat并使用repos中的tomcat时,请记住将tc本机库复制到/usr/lib64 64文件夹中,并在该文件夹中重新创建符号链接。

对我来说,这个问题始于2019年4月初,tomcat从8.5.32升级到8.5.35,但是tomcat本机的版本仍然是1.2.17,在repos中没有更新。安迪·威尔金森()给出的答案是我唯一能找到的,能恰当地解释这个问题并提供帮助的答案。

票数 0
EN

Stack Overflow用户

发布于 2022-11-28 03:04:00

这可以通过升级Tomcat本机来解决。只需删除现有版本,并将其替换为最新版本。从阿帕奇下载它到您的/tmp文件夹。然后使用本指南将其安装到您的系统中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53596134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档