私は SPRING INITIALIZR からWeb、MongoDBおよびJPAの依存関係を使って基本的なスプリングブートアプリケーションを作成しました。
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
私が使うバージョン: Spring:5.0.4、MongoDB:3.6、Spring Boot:2.0
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依存関係を削除して実行してください。それはうまくいくはずです。
Application.propertiesが存在するリソースフォルダーに移動し、その中の以下のコードを更新してください。
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
以下の行をリソースフォルダの下の application.properties ファイルに追加して、アプリケーションを再起動します。
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
MongoDBドライバーが欠落しているようです。 pom.xml
に次の依存関係を含めます。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
データに基づいた依存関係は、作成されていないそれぞれのエンティティを見つけようとしています。データに基づいて依存関係をコメントし、アプリケーションを再度実行します。
<!-- <dependency> -->
<!-- <groupId>org.springframework.boot</groupId> -->
<!-- <artifactId>spring-boot-starter-data-jpa</artifactId> -->
<!-- </dependency> -->
このエラーは、mavenやgradleのようにスプリングブート設定ファイルにJPA依存関係を入れているときに発生しました。解決策は次のとおりです。 Spring-Boot Documentation
DB接続文字列とドライバの詳細をapplication.propertiesファイルに指定する必要があります。これで問題は解決します。これは誰かに役立つかもしれません。
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>
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')`**
そしてそれは私のために働いた。