在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) 在 _GrailsSettings_groovy $ _run_closure10.doCall(_GrailsSettings_groovy:280) 在 _GrailsSettings_groovy $ _run_closure10.call(_GrailsSettings_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更多
答案 0 :(得分:0)
首先安装Hibernate插件,然后才安装Shiro插件。
transactionManager bean是由Hibernate插件定义的,所以Shiro插件类无法引用transactionManager bean是很正常的。
羞辱我!