Spring Boot 2.1: ресурс пути к классам [keystore.p12] не может быть преобразован в URL-адрес, поскольку он не существует

Я новичок в весенней загрузке и разработке. Использование Spring Boot 2 с kotlin и gradle. Ошибка пути к классам возникает, когда я пытаюсь прикрепить сертификат ssl. Решение на Spring Boot 1.4: ресурс пути к классу [] не может быть преобразован в URL-адрес, поскольку он не существует не работает.

Тем временем я попытался воспроизвести решение и удалил реализацию starter-data-jpa и использовал starter-jdbc. Но вроде ничего не работает. Другое решение также вызывает ту же ошибку.

> Error starting ApplicationContext. To display the conditions report
> re-run your application with 'debug' enabled. 2019-01-16 23:20:19.511
> ERROR 9589 --- [           main] o.s.boot.SpringApplication           
> : Application run failed
> 
> org.springframework.context.ApplicationContextException: Unable to
> start web server; nested exception is
> org.springframework.boot.web.server.WebServerException: Could not load
> key store: class path resource [keystore.p12] cannot be resolved to
> URL because it does not exist     at
> org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:157)
> ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]    at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:540)
> ~[spring-context-5.1.4.RELEASE.jar:5.1.4.RELEASE]     at
> org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)
> ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]    at
> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
> [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]     at
> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
> [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]     at
> org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
> [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]     at
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
> [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]     at
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
> [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]     at
> com.example.demo.DemoApplicationKt.main(DemoApplication.kt:16)
> [classes/:na] Caused by:
> org.springframework.boot.web.server.WebServerException: Could not load
> key store: class path resource [keystore.p12] cannot be resolved to
> URL because it does not exist     at
> org.springframework.boot.web.embedded.tomcat.SslConnectorCustomizer.configureSslKeyStore(SslConnectorCustomizer.java:136)
> ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]    at
> org.springframework.boot.web.embedded.tomcat.SslConnectorCustomizer.configureSsl(SslConnectorCustomizer.java:92)
> ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]    at
> org.springframework.boot.web.embedded.tomcat.SslConnectorCustomizer.customize(SslConnectorCustomizer.java:58)
> ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]    at
> org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.customizeSsl(TomcatServletWebServerFactory.java:317)
> ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]    at
> org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.customizeConnector(TomcatServletWebServerFactory.java:300)
> ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]    at
> org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:166)
> ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]    at
> org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:181)
> ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]    at
> org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:154)
> ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]    ... 8 common frames
> omitted Caused by: java.io.FileNotFoundException: class path resource
> [keystore.p12] cannot be resolved to URL because it does not exist    at
> org.springframework.util.ResourceUtils.getURL(ResourceUtils.java:137)
> ~[spring-core-5.1.4.RELEASE.jar:5.1.4.RELEASE]    at
> org.springframework.boot.web.embedded.tomcat.SslConnectorCustomizer.configureSslKeyStore(SslConnectorCustomizer.java:133)
> ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]    ... 15 common frames
> omitted

Файл Application.property

#spring.data.jpa.repositories.enabled=false



# Tell Spring Security (if used) to require requests over HTTPS
security.require-ssl=true

# The format used for the keystore
server.ssl.key-store-type=PKCS12
# The path to the keystore containing the certificate
server.ssl.key-store=./keystore.p12
# The password used to generate the certificate
server.ssl.key-store-password=
# The alias mapped to the certificate
server.ssl.key-alias=tomcat

Я использовал ./keystore, поскольку путь к классам не работает. Использование ./ решает эту проблему. Но когда я меняю местоположение банки, она перестает работать. Я не могу поместить keystore.p12 в то же место, что и jar в build / libs /. Но мне бы понравилось решение classpath в Kotlin.

Может кто поможет с форматированием. Моя часть кода (ошибка) не прокручивается. Я новичок в StackOverflow.

Plasmatiger 16.01.2019 19:04

вы можете предоставить свои application.properties?

stacker 16.01.2019 19:15

Где ваш файл keystore.p12 и как вы запускаете приложение, когда оно не запускается?

Andy Wilkinson 16.01.2019 20:21

@stacker Я отредактировал, чтобы включить информацию о местоположении keystore.p12. Чтобы уточнить, он находится в каталоге приложения вместе с .gradlew, build.gradle и т. д.

Plasmatiger 19.01.2019 10:31

@AndyWilkinson Добавлено application.property. Просто удалил пароль.

Plasmatiger 19.01.2019 10:32

У меня также есть проблемы с Spring Boot 2.1.2 и Spring Core 5.1.4 при загрузке файлов из каталога Resource (с ResourceUtils.getFile ("classpath: ...). Нет проблем с Spring Boot 2.1.1 и Spring Core 5.1.3 Об этой же проблеме сообщается в stackoverflow.com/q/54178805/2820504.

GeBeater 20.01.2019 16:37

Вы нашли решение этого?

LostAtSea 01.01.2020 20:54
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
5
7
7 510
0

Другие вопросы по теме