我的Grails 2.1应用程序正在尝试启动名为ServiceParamService
的Grails服务时,正在使用下面的BeanCreationException启动。我并不感到惊讶,因为它没有找到一个交易经理,但我不明白为什么要找一个。
在调试器中查看,看起来确定ServiceParamService
是"TypeSpecifyableTransactionProxyFactoryBean"
的东西,就其本质而言,它采用参数target
,{{1} },proxyTargetClass
和transactionAttributeSource
。
奇怪的是,这个服务在另一个没有定义事务管理器的Grails应用程序中实例化,并且具有相同的transactionManager
,Config.groovy
和BuildConfig.groovy
。所以,不知何故,通过愚蠢的运气,其他应用程序绕过这个。如果没有推出新的应用程序(并且通过删除90%的旧应用程序重新启动),我怎么能弄清楚旧的应用程序为解决这个虚假的事务管理器要求做了什么?和/或自己绕过它?
resources.xml
答案 0 :(得分:1)
默认情况下,服务是事务性的。添加
static transactional = false
到您的服务类,以防止它被包装在事务代理中。