Я создал базовое приложение для весенней загрузки из ПРУЖИНА ИНИЦИАЛИЗР с зависимостями Web, MongoDB и JPA.
Когда я пытаюсь запустить приложение весенней загрузки, я получаю следующее исключение:
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-03-25 16:27:02.807 ERROR 16256 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured.
Reason: Failed to determine a suitable driver class
Action:
Consider the following situation:
If you want an embedded database like H2, HSQL or Derby, please add it in the Classpath.
If you have database settings to be loaded from a particular profile you may need to activate it since no profiles were currently active.
В файле application.properties у меня следующая конфигурация:
server.port=8081
spring.data.mongodb.database=TestDatabase
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
Версии, которые я использую: Spring: 5.0.4, MongoDB: 3.6, Весенняя загрузка: 2.0




Кажется, отсутствует драйвер MongoDB. Включите следующую зависимость для pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
у меня тоже не получилось с spring-boot-starter-data-mongodb и spring-batch-starter
Поскольку вы добавили зависимости mongodb и data-jpa в свой файл pom.xml, он создавал конфликт зависимостей, как показано ниже
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
Попробуйте удалить зависимость jpa и запустить. Он должен работать нормально.
Да, это была моя проблема. Я удалил зависимость JPA, и теперь она отлично работает. Спасибо.
Обратите внимание, что spring-boot-starter-batch вводит зависимость от jdbc, которая активирует ту же ошибку.
Да, это решило мою проблему. В моем случае это были org.postgresql:postgresql и data-jpa. Просто исключите data-jpa, и все будет хорошо.
Вызвало бы ли это ошибку, если бы в моем pom.xml были data-jpa и mysql-connector-java?
Я скрыл зависимость mongo db, но все еще имел ту же проблему.
Я думаю, вам не следует удалять зависимость mongo, вместо этого удаляйте зависимость data-jpa.
Спасибо за ответ, это очень помогает. Я тоже решил проблему с помощью вашего ответа.
Для mongodb: используйте зависимость от mongo
У меня возникла эта проблема, когда я переключал свой проект Spring с Postgres на MongoDB. Если вы используете IntelliJ, не забудьте выполнить MAVEN SYNC после редактирования pom.xml!
Перейдите в папку ресурсов, где присутствует application.properties, обновите в ней приведенный ниже код.
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
У меня есть эта проблема, даже если я не использовал зависимости jpa и mongodb вместе в моем pom.xml ... Итак, я получаю это из-за зависимости spring-boot-starter-batch. Не могли бы вы объяснить, почему эта настройка работает?
Это сработало, но при отправке запроса со стороны клиента возникла ошибка: blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
@AdirD Это не имеет ничего общего с рассматриваемой проблемой, вам необходимо настроить сервер для приема запросов CORS.
Добавьте строку ниже в файл application.properties в папке ресурсов и перезапустите приложение.
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
ваша зависимость на основе данных пытается найти свои соответствующие сущности, которые не были созданы, комментирует зависимости на основе данных и снова запускает приложение.
<!-- <dependency> -->
<!-- <groupId>org.springframework.boot</groupId> -->
<!-- <artifactId>spring-boot-starter-data-jpa</artifactId> -->
<!-- </dependency> -->
Добавьте свои зависимости, такие как mongodb, web, jpa. Удалите / очистите остатки.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
добавление зависимости org.apache.derby решило мою проблему.
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>runtime</scope>
</dependency>
В gradle build я просто:
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-security')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-devtools')
удаленный
**`compile('org.springframework.boot:spring-boot-starter-data-jpa')`**
и это сработало для меня.
Эта ошибка возникла, когда вы помещаете зависимости JPA в файл конфигурации весенней загрузки, например, в maven или gradle. Решение: Документация Spring-Boot
В файле application.properties необходимо указать строку подключения к БД и сведения о драйвере. Это решит проблему. Это может кому-то помочь.
Я столкнулся с этой проблемой, когда просто неправильно ввел свой URL-адрес jdbc в application.properties. Надеюсь, это кому-то поможет: перед:
spring.datasource.url=jdbc://localhost:3306/test
после:
spring.datasource.url=jdbc:mysql://localhost:3306/test
@Bhabadyuti Bal, дайте нам хороший ответ, в gradle вы можете использовать:
compile 'org.springframework.boot:spring-boot-starter-data-jpa'
compile 'com.h2database:h2'
во время теста:
testCompile 'org.reactivecommons.utils:object-mapper:0.1.0'
testCompile 'com.h2database:h2'
Я столкнулся с этой ошибкой просто потому, что неправильно написал значение spring.datasource.url в файле application.properties и использовал postgresql:
Проблема была:jdbc:postgres://localhost:<port-number>/<database-name>
Исправлено:jdbc:postgresql://localhost:<port-number>/<database-name>
ПРИМЕЧАНИЕ: разница в postgres и postgresql, это две разные вещи.
Дополнительные причины и решения могут быть найдены здесь
Спасибо за ответ. У меня уже есть эта зависимость в моем файле pom.xml. Все еще не получается.