2014-01-22 4 views
0

내 프로젝트가 정상적으로 작동하고 있습니다. GGTS IDE에서 Open grails 플러그인 관리자를 통해 MongoDB 플러그인을 설치하려고 시도한 후.MongoDB GORM 플러그인 설치 문제 Grails 3.4.0

이제 프로젝트를 실행 한 후 다음 오류가 발생합니다. 일부 정보 - My 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

은 (는) 귀하의 mongod가 --auth로 실행되고 있습니까? 때때로 grails 오류 메시지는 매우 직관적이지 않거나 다른 오류에 대해 완전히 잘못된 메시지를 표시합니다. – user3334603

답변

0

물론 Grails 2.4.0을 사용한다고 생각합니다.

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

당신은 몽고에서 DB를 작성해야하고 여기에 액세스 할 수있는 사용자 : 좋아, 여기 내 MongoDB를위한 DataSource.groovy에이다.

+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에서 값을 확인하십시오.