问题描述:springboot2.x配置https方式能正常启动项目,但在访问接口时报如下错:
java.lang.UnsatisfiedLinkError: org.apache.tomcat.jni.SSL.renegotiatePending(J)I
解决方案:原因是tomcat版本与jdk版本兼容问题,如:
使用jdk1.8.0_211,需要使用tomcat9.0.12,大于该版本的tomcat在访问接口时将会报上述错误。所以我们将springboot中的默认tomcat改为我们自定义的版本
maven配置如下:
<!-- 启动https时,使用jdk1.8.0_211-b12保持tomcat版本9.0.12及以下 -->
<tomcat.version>9.0.12</tomcat.version>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>${tomcat.version}</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>tomcat-annotations-api</artifactId>
<groupId>org.apache.tomcat</groupId>
</exclusion>
</exclusions>
</dependency>