2014-01-16 38 views
1

我正在使用一個使用mongodb的應用程序,它是在grails中構建的,並且使用oauth2作爲身份驗證服務。我建立了服務和控制器(我認爲),並試圖運行我的服務器以手動測試與谷歌的連接。我遇到了「創建名爲transactionManagerPostProcessor的bean時出錯」,這是我無法解決的。我知道我需要安裝一個爲我處理「事務」的插件,或者在resources.groovy中創建一個bean。OAUTH2事務管理器grails mongodb

我已經做了大量的研究和閱讀,但在過去的幾天裏,我一直在試圖實現這個目標。有人能告訴我如何解決這個問題,創建正確的bean,還是安裝正確的插件?以下部分堆棧跟蹤,與鏈接到完整的堆棧跟蹤:

|Loading Grails 2.3.4 
|Configuring classpath 
. 
|Environment set to development 
................................. 
|Packaging Grails application 
............................................ 
|Running Grails application 
Configuring Spring Security Core ... 
... finished configuring Spring Security Core 
Error | 
2014-01-16 09:30:52,840 [localhost-startStop-1] ERROR context.GrailsContextLoader -    Error initializing the application: Error creating bean with name  'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: 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': Cannot resolve reference to bean 'mongoMappingContext' while setting bean property 'mappingContext'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoMappingContext': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: org/springframework/format/datetime/DateFormatterRegistrar 

完整堆棧跟蹤,可以發現:http://pastebin.com/5mW5uwtu

我曾嘗試加入

static transaction = 'mongo' 

來調用谷歌對該服務進行驗證用戶。這是我在一個類似於stackoverflow的問題上找到的解決方案。我也在我的build-config中弄弄了不同的插件和依賴關係。不知道還有什麼要嘗試。

謝謝!

+0

這是一個很大的堆棧!作爲提示,請考慮在http://pastebin.com/或類似網站上粘貼如此的大堆棧,並在此處發佈鏈接。 – leparlon

+0

謝謝,會做。正如人們可以說的,我是新手。 – mmelear

回答

0

要解決此問題,有一些插件,我已經添加了以下到豆resources.groovy阻止

// some plugins need a transaction manager, 
// although the mongo one isn't properly transactional 
// and could produce unexpected results in some cases. 
springConfig.addAlias('transactionManager', 'mongoTransactionManager') 

但是,您所看到的特定錯誤涉及到Spring類DateFormatterRegistrar不被發現。您是否使用最新版本的Grails(例如2.3+)和mongo插件?您是否在BuildConfig中將mongo插件作爲編譯插件依賴項添加了:

compile ":mongodb:1.3.3"