我正在开发一个使用mongodb的应用程序,它是用grails构建的,并且使用oauth2作为身份验证服务。我有内置的服务和控制器(我认为),我正在尝试运行我的服务器来手动测试与谷歌的连接。我遇到了“创建名为transactionManagerPostProcessor的bean的错误...”,我无法解决。我知道我需要安装一个插件来处理我的“事务”,或者在resources.groovy中创建一个bean。
我已经做了大量的研究和阅读,但是在过去的几天里,我一直处于死胡同,试图实现这一目标。有人能告诉我如何解决这个问题,创建正确的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'
调用google来验证用户身份的服务。这是我在stackoverflow上的一个类似问题上找到的解决方案。我还在build-config中摆弄了不同的插件和依赖项。不知道还有什么可以尝试。
谢谢!
答案 0 :(得分:0)
要使用某些插件解决此问题,我已将以下内容添加到resources.groovy中的beans块
// 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"