На моем локальном компьютере, когда я запускаю одно из моих приложений Spring Boot 2.0.0 из IntelliJ, приложение периодически не запускается, и в консоли отображается следующее сообщение:
Сбой приложенияto Start
Описание:
Не удалось автоматически настроить источник данных: «spring.datasource.url» не указан, а встроенный источник данных не может быть настроен автоматически.
Причина: не удалось определить подходящий класс диска
Когда я получаю эту ошибку, при попытке запустить приложение снова (иногда) оно запускается.Поведение кажется недетерминированным.Иногда приложение запускается с первой попытки, иногда требуется несколько последовательных попыток.
Редактировать ----------------------------------------------------------------------------
Ошибка, по-видимому, вызвана тем, что приложение не может определить, какой профиль активен.Когда приложение не запускается, вывод журнала Spring сообщает «Не задан активный профиль, возвращаясь к профилям по умолчанию: по умолчанию».Когда приложение запускается успешно, вывод журнала регистрирует «Активны следующие профили: локальный, allowall», то есть профили, которые я установил в качестве активных в application.properties.
К сожалению, если Spring определит, какой профиль активен при запуске, для меня это бросок костей.
----------------------------------------------------------------------------------
Мое приложение настроено для использования spring-boot-starter-data-jpa и подключения к базе данных Postgres.Для пула соединений я использую HikariCP 2.7.8.
Ошибка консоли (см. Ниже) подразумевает, что Hikari не может загрузить источник данных.Поскольку эта ошибка недетерминированная, может, это зависит от порядка, в котором Spring создает бины при запуске?
Свойство spring.datasource.url определено в моем файле свойств локального приложения.Файл свойств приложения задает для свойства активного профиля пружины значение local.
Это мой файл application.properties
spring.profiles.active=local,permitall
management.endpoints.web.base-path=/
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
Это мой application-local.properties
spring.datasource.url=jdbc:postgresql://localhost/vms?currentSchema=vms
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
Я не нашел образец неудач или успехов.Приветствуются любые идеи по решению или устранению этой проблемы.
Сообщение об ошибке консоли
2018-05-18 13: 53: 49.667 ОШИБКА 16228 --- [ost-startStop-1] osbweb.embedded.tomcat.TomcatStarter: Ошибка запуска контекста Tomcat.Исключение: org.springframework.beans.factory.BeanCreationException.Сообщение: ошибка создания компонента с именем 'servletEndpointRegistrar', определенного в ресурсе пути к классу
[org / springframework / boot / activate / autoconfigure / endpoint / web / ServletEndpointManagementContextConfiguration.class]: сбой создания экземпляра компонента с помощью метода фабрики;
вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.springframework.boot.actuate.endpoint.web.ServletEndpointRegistrar]: метод фабрики 'servletEndpointRegistrar' вызвал исключение;
вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем 'healthEndpoint', определенным в ресурсе пути к классу [org / springframework / boot / activate / autoconfigure / health / HealthEndpointConfiguration.class]:Не удалось создать экземпляр объекта с помощью фабричного метода;
вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.springframework.boot.actuate.health.HealthEndpoint]: фабричный метод 'healthEndpoint' вызвал исключение;
вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем org.springframework.boot.actuate.autoconfigure.jdbc.DataSourceHealthIndicatorAutoConfiguration ': не удалось создать экземпляр объекта;
Вложенное исключение - org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.springframework.boot.actuate.autoconfigure.jdbc.DataSourceHealthIndicatorAutoConfiguration $$;
вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка создания компонента с именем 'dataSource', определенным в ресурсе пути к классу [org / springframework / boot / autoconfigure / jdbc / DataSourceConfiguration $ Hikari.class]:Инстанцирование компонента с помощью фабричного метода не удалось;
вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [com.zaxxer.hikari.HikariDataSource]: метод фабрики 'dataSource' вызвал исключение;
вложенным исключением является org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException: не удалось определить подходящий класс драйвера