2014-01-22 3 views
0

Мой проект работает нормально. После того, как я попробовал установить плагин MongoDB через Open Plug-менеджер графиков в GGTS IDE.Ошибка установки для плагина MongoDB GORM на Grails 3.4.0

Теперь я получаю следующую ошибку после запуска моего проекта. Дополнительная информация - Моя текущая версия MongoDB - v2.4.8. и я устанавливаю этот плагин. http://grails.org/plugin/mongodb.

Configuring Spring Security Core ... 
... finished configuring Spring Security Core 
Configuring Spring Security Facebook ... 
... finished configuring Spring Security Facebook 
2014-01-22 01:28:16,788 [localhost-startStop-1] WARN hibernate.AbstractEhcacheRegionFactory - Couldn't find a specific ehcache configuration for cache named [com.lyfe.sec.Authority]; using defaults. 
| Error 2014-01-22 01:28:18,524 [localhost-startStop-1] ERROR context.GrailsContextLoader - Error initializing the application: Error creating bean with name 'mongoDatastore': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Database name must only contain letters, numbers, underscores and dashes! 
Message: Error creating bean with name 'mongoDatastore': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Database name must only contain letters, numbers, underscores and dashes! 
    Line | Method 
->> 109 | postProcessBeanFactory in org.grails.datastore.gorm.plugin.support.PersistenceContextInterceptorAggregator 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 303 | innerRun    in java.util.concurrent.FutureTask$Sync 
| 138 | run . . . . . . . . . in java.util.concurrent.FutureTask 
| 895 | runTask    in java.util.concurrent.ThreadPoolExecutor$Worker 
| 918 | run . . . . . . . . . in  '' 
^ 695 | run     in java.lang.Thread 
**Caused by IllegalArgumentException: Database name must only contain letters, numbers, underscores and dashes!** 
->> 253 | createMongoTemplate in org.grails.datastore.mapping.mongo.MongoDatastore 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 222 | afterPropertiesSet  in  '' 
| 53 | getObject . . . . . . in org.grails.datastore.gorm.mongo.bean.factory.MongoDatastoreFactoryBean 
| 109 | postProcessBeanFactory in org.grails.datastore.gorm.plugin.support.PersistenceContextInterceptorAggregator 
| 303 | innerRun . . . . . . . in java.util.concurrent.FutureTask$Sync 
| 138 | run     in java.util.concurrent.FutureTask 
| 895 | runTask . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
| 918 | run     in  '' 
^ 695 | run . . . . . . . . . in java.lang.Thread 
+0

Ваш монгод работает с --auth? Иногда сообщение об ошибке Grails не очень интуитивно понятное или выводит совершенно неправильное сообщение для другой ошибки. – user3334603

ответ

0

Конечно, я думаю, вы бы сказали Grails 2.4.0. Ok Вот мой DataSource.groovy для MongoDB:

environments { 
    development { 
    grails { 
     mongo { 
      host = "10.0.11.243" 
      port = 27017 
      username = "username" 
      password = "userpassword" 
      databaseName = "yourdb" 
      options { 
       autoConnectRetry = true 
       connectTimeout = 300 
      } 
     } 
    } 
} 
} 

Вы должны создать DB в Монго и пользователь, который может получить доступ к нему.

+0

Спасибо за ответ. Я попытался создать пользователя и добавил код ниже в DataConfig.groovy – Niti

0

Какое имя вы использовали для базы данных? Обратите внимание на следующую строку из ошибки:

Message: Error creating bean with name 'mongoDatastore': 
FactoryBean threw exception on object creation; nested exception is 
java.lang.IllegalArgumentException: **Database name** must only contain letters, numbers, underscores and dashes! 

Где-то в конфигурации вы либо ввели недопустимое имя базы данных или не установлены один на всех. Проверьте значения в DataSource.groovy.

Смежные вопросы