我已经使用Web,MongoDB和JPA依赖项从 SPRING INITIALIZR 创建了一个基本的Spring启动应用程序。
当我尝试运行spring boot应用程序时,我遇到以下异常:
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
我使用的版本: 春天:5.0.4, MongoDB:3.6, Spring Boot:2.0
答案 0 :(得分:66)
由于您已在pom.xml文件中添加了mongodb和data-jpa依赖项,因此它正在创建依赖性冲突,如下所示
<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依赖项并运行。它应该工作正常。
答案 1 :(得分:33)
转到application.properties所在的资源文件夹,更新下面的代码。
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
答案 2 :(得分:16)
在资源文件夹下的 application.properties 文件中添加以下行,然后重新启动您的应用程序。
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
答案 3 :(得分:2)
似乎缺少MongoDB驱动程序。在pom.xml
中包含以下依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
答案 4 :(得分:1)
您基于数据的依赖关系正在尝试查找尚未创建的各个实体,然后对基于数据的依赖关系进行注释并再次运行该应用程序。
<!-- <dependency> -->
<!-- <groupId>org.springframework.boot</groupId> -->
<!-- <artifactId>spring-boot-starter-data-jpa</artifactId> -->
<!-- </dependency> -->
答案 5 :(得分:1)
当您将JPA依赖项放入spring-boot配置文件(例如在maven或gradle中)时,发生此错误。 解决方案是:Spring-Boot Documentation
您必须在application.properties文件中指定数据库连接字符串和驱动程序详细信息。这样可以解决问题。 这可能对某人有帮助。
答案 6 :(得分:1)
我遇到此错误的原因仅仅是因为我在 application.properties 文件中拼写了spring.datasource.url
值,并且我使用的是postgresql:
问题是:
jdbc:postgres://localhost:<port-number>/<database-name>
固定为:
jdbc:postgresql://localhost:<port-number>/<database-name>
注意:区别是postgres
和postgresql
,两者是2种不同的东西。
可以找到更多的原因和解决方法here
答案 7 :(得分:0)
添加依赖项,例如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>
答案 8 :(得分:0)
在gradle构建中,我只是:
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')`**
对我有用。
答案 9 :(得分:0)
当我只是在application.properties中错误输入我的jdbc url时,我遇到了这个问题。希望这对某人有帮助: 之前:
spring.datasource.url=jdbc://localhost:3306/test
之后:
spring.datasource.url=jdbc:mysql://localhost:3306/test
答案 10 :(得分:0)
@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'
答案 11 :(得分:-1)
添加org.apache.derby依赖关系解决了我的问题。
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>runtime</scope>
</dependency>