Grails + Shiro插件失败,错误创建ShiroFilters无法解析对bean transactionManager的引用

时间:2011-05-09 14:22:50

标签: grails shiro

在Grails(v 1.3.7)应用程序中安装Shiro插件(v 1.1.3)并使用 grails shiro-quick-start --prefix =“Sec”来引导不同的Shiro类grails run-app失败,堆栈跟踪如下所示。

任何人都知道到底出了什么问题?

当启动应用程序时,会显示以下异常:

  

运行Grails应用程序..   2011-05-09 16:14:31,209 [主要]错误   context.GrailsContextLoader - 错误   执行bootstraps:创建错误   豆的名字   'org.apache.shiro.grails.ShiroFilters':   bean的初始化失败;嵌套   例外是   org.springframework.beans.factory.BeanCreationException:   使用名称创建bean时出错   'shiroAnnotationHandlerService':   无法解析对bean的引用   设置时'transactionManager'   bean属性'transactionManager';   嵌套异常是   org.springframework.beans.factory.NoSuchBeanDefinitionException:   没有名为'transactionManager'的bean   定义   org.springframework.beans.factory.BeanCreationException:   使用名称创建bean时出错   'org.apache.shiro.grails.ShiroFilters':   bean的初始化失败;嵌套   例外是   org.springframework.beans.factory.BeanCreationException:   使用名称创建bean时出错   'shiroAnnotationHandlerService':   无法解析对bean的引用   设置时'transactionManager'   bean属性'transactionManager';   嵌套异常是   org.springframework.beans.factory.NoSuchBeanDefinitionException:   没有名为'transactionManager'的bean   定义于   org.grails.tomcat.TomcatServer.start(TomcatServer.groovy:212)     在   grails.web.container.EmbeddableServer $ start.call(未知   来源)at   _GrailsRun_groovy $ _run_closure5_closure12.doCall(_GrailsRun_groovy:158)     在   _GrailsRun_groovy $ _run_closure5_closure12.doCall(_GrailsRun_groovy)     在   _GrailsS​​ettings_groovy $ _run_closure10.doCall(_GrailsS​​ettings_groovy:280)     在   _GrailsS​​ettings_groovy $ _run_closure10.call(_GrailsS​​ettings_groovy)     在   _GrailsRun_groovy $ _run_closure5.doCall(_GrailsRun_groovy:149)     在   _GrailsRun_groovy $ _run_closure5.call(_GrailsRun_groovy)     在   _GrailsRun_groovy.runInline(_GrailsRun_groovy:116)     在   _GrailsRun_groovy.this $ 4 $ runInline(_GrailsRun_groovy)     在   _GrailsRun_groovy $ _run_closure1.doCall(_GrailsRun_groovy:59)at at   RunApp $ _run_closure1.doCall(RunApp.groovy:33)at   gant.Gant $ _dispatch_closure5.doCall(Gant.groovy:381)     在   gant.Gant $ _dispatch_closure7.doCall(Gant.groovy:415)     在   gant.Gant $ _dispatch_closure7.doCall(Gant.groovy)at   gant.Gant.withBuildListeners(Gant.groovy:427)     在   gant.Gant.this $ 2 $ withBuildListeners(Gant.groovy)     在   gant.Gant $这个$ 2 $ withBuildListeners.callCurrent(未知   来源)at   gant.Gant.dispatch(Gant.groovy:415)     在   gant.Gant.this $ 2 $讯(Gant.groovy)     在   gant.Gant.invokeMethod(Gant.groovy)     在   gant.Gant.executeTargets(Gant.groovy:590)     在   gant.Gant.executeTargets(Gant.groovy:589)   引起:   org.springframework.beans.factory.BeanCreationException:   使用名称创建bean时出错   'shiroAnnotationHandlerService':   无法解析对bean的引用   设置时'transactionManager'   bean属性'transactionManager';   嵌套异常是   org.springframework.beans.factory.NoSuchBeanDefinitionException:   没有名为'transactionManager'的bean   定义... 23更多引起:   org.springframework.beans.factory.NoSuchBeanDefinitionException:   没有名为'transactionManager'的bean   定义... 23更多

1 个答案:

答案 0 :(得分:0)

首先安装Hibernate插件,然后才安装Shiro插件。

transactionManager bean是由Hibernate插件定义的,所以Shiro插件类无法引用transactionManager bean是很正常的。

羞辱我!