【发布时间】:2015-08-10 06:12:01
【问题描述】:
我正在尝试将 Grails 项目与 MongoDB 连接,但出现以下错误
创建名为“mongoTransactionManager”的 bean 时出错:在设置 bean 属性“datastore”时无法解析对 bean“mongoDatastore”的引用
我的 DataSource.groovy 文件-
grails{
mongo{
host ="127.0.0.1"
port ="27017"
username = "blogproject"
password = "mypassword"
databaseName ="blogproject"
}
}
我已经从 BuildConfig.groovy 中删除了以下内容
//runtime ":hibernate:3.6.10.12"
//runtime ":database-migration:1.3.8"
//compile ':cache:1.1.1'
并在 BuildConfig.groovy 中添加以下内容
compile ":mongodb:3.0.3"
我的错误堆栈跟踪如下-
Error |
2015-08-10 11:17:15,002 [localhost-startStop-1] ERROR context.GrailsContextLoader - Error initializing the application: Error creating bean with name 'mongoTransactionManager': Cannot resolve reference to bean 'mongoDatastore' while setting bean property 'datastore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoDatastore': FactoryBean threw exception on object creation; nested exception is org.springframework.data.mongodb.CannotGetMongoDbConnectionException: Failed to authenticate to database [blogproject], username = [blogproject], password = [m*********d]
Message: Error creating bean with name 'mongoTransactionManager': Cannot resolve reference to bean 'mongoDatastore' while setting bean property 'datastore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoDatastore': FactoryBean threw exception on object creation; nested exception is org.springframework.data.mongodb.CannotGetMongoDbConnectionException: Failed to authenticate to database [blogproject], username = [blogproject], password = [m*********d]
Line | Method
->> 334 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 166 | run in java.util.concurrent.FutureTask
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 603 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run . . . in java.lang.Thread
Caused by BeanCreationException: Error creating bean with name 'mongoDatastore': FactoryBean threw exception on object creation; nested exception is org.springframework.data.mongodb.CannotGetMongoDbConnectionException: Failed to authenticate to database [blogproject], username = [blogproject], password = [m*********d]
->> 334 | innerRun in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 166 | run in java.util.concurrent.FutureTask
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 603 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run . . . in java.lang.Thread
Caused by CannotGetMongoDbConnectionException: Failed to authenticate to database [blogproject], username = [blogproject], password = [m*********d]
->> 285 | initializeIndices in org.grails.datastore.mapping.mongo.MongoDatastore
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 276 | createMongoTemplate in ''
| 221 | afterPropertiesSet in ''
| 54 | getObject in org.grails.datastore.gorm.mongo.bean.factory.MongoDatastoreFactoryBean
| 334 | innerRun in java.util.concurrent.FutureTask$Sync
| 166 | run in java.util.concurrent.FutureTask
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 603 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run . . . in java.lang.Thread
|Server running. Browse to http://localhost:8090/blogproject
Error |
Forked Grails VM exited with error
我还在 MongoDB 中添加了以下用户用于数据库“blogproject”进行身份验证
> use blogproject
switched to db blogproject
> show users;
{
"_id" : "blogproject.blogproject",
"user" : "blogproject",
"db" : "blogproject",
"roles" : [
{
"role" : "readWrite",
"db" : "blogproject"
},
{
"role" : "dbAdmin",
"db" : "blogproject"
},
{
"role" : "dbOwner",
"db" : "blogproject"
},
{
"role" : "userAdmin",
"db" : "blogproject"
}
]
}
>
【问题讨论】:
标签: java mongodb grails groovy