Spring Boot 2嵌入tomcat 9.0.26无法加载jks文件流关闭 [英] Spring boot 2 embed tomcat 9.0.26 can not load jks file stream closed

查看:286
本文介绍了Spring Boot 2嵌入tomcat 9.0.26无法加载jks文件流关闭的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在嵌入了tomcat 9.0.26的Spring Boot 2.2.0上使用SSL,但是 Tomcat无法关闭已关闭的JKS文件流.

I try to use SSL on spring boot 2.2.0 with embeded tomcat 9.0.26 but tomcat can not load JKS file stream closed.

以下是应用程序属性:

server.port=443
server.ssl.key-store-type=JKS
server.ssl.key-store=C:\\Keystore\\mykey.jks
server.ssl.key-store-password=cccc 
server.ssl.key-alias=*.mydomain.com

例外:

org.springframework.boot.web.server.WebServerException:无法执行 启动嵌入式Tomcat服务器 在org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:215) 〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] 在org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:297) 〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] 在org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:163) 〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] 在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553) 〜[spring-context-5.2.0.RELEASE.jar!/:5.2.0.RELEASE] 在org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) 〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] 在org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) 〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] 在org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) 〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] 在org.springframework.boot.SpringApplication.run(SpringApplication.java:315) 〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] 在org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) 〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] 在org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) 〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] 在eu.soluma.app.SolumaTdvApplication.main(SolumaTdvApplication.java:34) 〜[课程!/:0.0.1-SNAPSHOT] 在java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 方法)〜[na:na] 在java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 〜[na:na] 在java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 〜[na:na] 在java.base/java.lang.reflect.Method.invoke(Method.java:567)〜[na:na] 在org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) 〜[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] 在org.springframework.boot.loader.Launcher.launch(Launcher.java:87) 〜[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] 在org.springframework.boot.loader.Launcher.launch(Launcher.java:51) 〜[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] 在org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) 〜[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]由以下原因引起: java.lang.IllegalArgumentException: standardService.connector.startFailed 在org.apache.catalina.core.StandardService.addConnector(StandardService.java:231) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:278) 〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] 在org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:197) 〜[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] ...省略了18个常见框架造成原因:org.apache.catalina.LifecycleException:协议处理程序启动失败 在org.apache.catalina.connector.Connector.startInternal(Connector.java:1008) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.catalina.core.StandardService.addConnector(StandardService.java:227) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] ...省略了20个常见框架造成原因:java.lang.IllegalArgumentException:流关闭 在org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:99) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:218) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1124) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1210) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:585) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.catalina.connector.Connector.startInternal(Connector.java:1005) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] ...省略了22个共同的框架原因:java.io.IOException:流关闭 在java.base/java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:176) 〜[na:na] 在java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:342) 〜[na:na] 在java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:252) 〜[na:na] 在java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:271) 〜[na:na] 在java.base/java.security.DigestInputStream.read(DigestInputStream.java:125) 〜[na:na] 在java.base/java.io.DataInputStream.readInt(DataInputStream.java:392) 〜[na:na] 在java.base/sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:659) 〜[na:na] 在java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:222) 〜[na:na] 在java.base/java.security.KeyStore.load(KeyStore.java:1472)〜[na:na] 在org.apache.tomcat.util.security.KeyStoreUtil.load(KeyStoreUtil.java:69) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:217) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:206) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:283) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:247) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] 在org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:97) 〜[tomcat-embed-core-9.0.26.jar!/:9.0.26] ...省略了28个常见框架

org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:215) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:297) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:163) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553) ~[spring-context-5.2.0.RELEASE.jar!/:5.2.0.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] at eu.soluma.app.SolumaTdvApplication.main(SolumaTdvApplication.java:34) ~[classes!/:0.0.1-SNAPSHOT] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:567) ~[na:na] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) ~[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) ~[SolumaTDV-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] Caused by: java.lang.IllegalArgumentException: standardService.connector.startFailed at org.apache.catalina.core.StandardService.addConnector(StandardService.java:231) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:278) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:197) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar!/:2.2.0.BUILD-SNAPSHOT] ... 18 common frames omitted Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed at org.apache.catalina.connector.Connector.startInternal(Connector.java:1008) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.catalina.core.StandardService.addConnector(StandardService.java:227) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] ... 20 common frames omitted Caused by: java.lang.IllegalArgumentException: Stream closed at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:99) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:218) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1124) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1210) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:585) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.catalina.connector.Connector.startInternal(Connector.java:1005) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] ... 22 common frames omitted Caused by: java.io.IOException: Stream closed at java.base/java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:176) ~[na:na] at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:342) ~[na:na] at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:252) ~[na:na] at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:271) ~[na:na] at java.base/java.security.DigestInputStream.read(DigestInputStream.java:125) ~[na:na] at java.base/java.io.DataInputStream.readInt(DataInputStream.java:392) ~[na:na] at java.base/sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:659) ~[na:na] at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:222) ~[na:na] at java.base/java.security.KeyStore.load(KeyStore.java:1472) ~[na:na] at org.apache.tomcat.util.security.KeyStoreUtil.load(KeyStoreUtil.java:69) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:217) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:206) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:283) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:247) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:97) ~[tomcat-embed-core-9.0.26.jar!/:9.0.26] ... 28 common frames omitted

推荐答案

这是Tomcat 9.0.25中引入的回归,该回归将在9.0.27中修复.

It is a regression introduced in Tomcat 9.0.25 that will be fixed in 9.0.27.

这篇关于Spring Boot 2嵌入tomcat 9.0.26无法加载jks文件流关闭的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆