首页 > 解决方案 > Spring Boot 2.1.2 的属性文件中的空格问题

问题描述

在我将 Spring Boot 版本从 2.0.2 更新到 2.1.2 并将 tomcat 从 9.0.7 更新到 9.0.14 之后,我开始遇到读取密钥库的问题。

一切都运行良好。现在我收到以下错误:

Caused by: java.io.IOException: Failed to load keystore type [PKCS12 ] with path [jar:file:/home/landing/landing.jar!/BOOT-INF/classes!/keystore.p12] due to [PKCS12  not found]

到目前为止,我注意到有一个感叹号,我认为它不应该出现在文件名之前。配置如下,实际文件在 Jar 文件中。

server.ssl.key-store=classpath:keystore.p12

除了回到以前的版本之外,还有什么想法吗?

编辑:我已经回滚到 Spring Boot 2.0.3。问题从 2.0.4 及更高版本开始发生。它与Tomcat无关。

编辑 2:我使用的是 Java 8,它可能与添加对其他 Java 版本的支持有关。

标签: javaspringspring-bootjava-8keystore

解决方案


在 dave_thompson_085 的帮助下(谢谢!!!!!!)我能够解决它。

显然,2.0.3 版和 2.0.4 版之间在处理属性文件中的空格方面发生了变化。

到 2.0.3 我认为空间被修剪了。

从 2.0.4 开始,Spring 停止修剪空格并将它们作为值的一部分读取。

2 个字段中有空格导致 Spring 抛出奇怪的错误。


推荐阅读