2015-02-24 192 views
2

Java 1.7.0_55,gradle 1.11spring-boot-gradle-plugin:1.2.1.RELEASE上獲取此springboot project using MongoDB/GORM/Groovy的啓動問題。在gorm/groovy上使用mongodb啓動時出現springboot初始化錯誤

我跑項目原樣有以下變化異常application.yml我的遠程MongoDB的:

spring: 
    mongodb: 
     host: "10.160.8.1" 
     databaseName: "citydb" 

**在啓動時,我看到這個bean的初始化錯誤mappingMongoConverter

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mongoTemplate' defined in class path resource [org/springframework/boot/autoconfigure/mongo/MongoDataAutoConfiguration.class]: 
Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.data.mongodb.core.convert.MongoConverter]: : Error creating bean with name 'mappingMongoConverter' defined in class path resource [org/springframework/boot/autoconfigure/mongo/MongoDataAutoConfiguration.class]: 
Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.data.mongodb.core.mapping.MongoMappingContext]: : No qualifying bean of type [org.springframework.data.mongodb.core.mapping.MongoMapping 
Context] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.data.mongodb.core.mapping.MongoMappingCo 
ntext] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mappingMongoConverter' defined in class path resource [org 
/springframework/boot/autoconfigure/mongo/MongoDataAutoConfiguration.class]: Unsatisfied dependency expressed through constructor argument with index 1 of typ 
e [org.springframework.data.mongodb.core.mapping.MongoMappingContext]: : No qualifying bean of type [org.springframework.data.mongodb.core.mapping.MongoMappin 
gContext] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested excepti 
on is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.data.mongodb.core.mapping.MongoMappingC 
ontext] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 

我認爲這是主要的問題:

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mappingMongoConverter' defined in class path resou 
rce [org/springframework/boot/autoconfigure/mongo/MongoDataAutoConfiguration.class]: Unsatisfied dependency expressed through constructor argument with index 
1 of type [org.springframework.data.mongodb.core.mapping.MongoMappingContext]: : No qualifying bean of type [org.springframework.data.mongodb.core.mapping.Mon 
goMappingContext] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested 
exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.data.mongodb.core.mapping.Mongo 
MappingContext] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 
     at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) 
     at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:464) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java: 
1111) 

這可能是GORM依賴性問題嗎?我使用的是最新的,org.grails:gorm-mongodb-spring-boot:1.1.0.RELEASE

跟蹤爲問題在GitHub上:https://github.com/spring-guides/gs-accessing-data-gorm-mongodb/issues/6

回答

6

gorm-mongodb-spring-boot是春季啓動1.2不兼容。它會創建一個名爲mongoMappingContext的bean,以防止MongoDataAutoConfiguration使用相同的名稱創建自己的bean。你應該在日誌中看到類似這樣的消息:

2015-02-25 14:01:30.731 INFO 60231 --- [   main] a.ConfigurationClassBeanDefinitionReader : Skipping bean definition for [BeanMethod:name=mongoMappingContext,declaringClass=org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration]: a definition for bean 'mongoMappingContext' already exists. This top-level bean definition is considered as an override. 

您可以解決的問題,通過使用不同的名稱,宣佈自己org.springframework.data.mongodb.core.mapping.MongoMappingContext豆,例如:

@Bean 
MongoMappingContext springDataMongoMappingContext() { 
    return new MongoMappingContext() 
} 
+0

這種完美配合,所以荒唐簡單! (謝謝) – raffian 2015-02-25 14:23:10

相關問題