2011-05-09 74 views
0

在Grails(v 1.3.7)應用程序中安裝Shiro插件(v 1.1.3)並使用grails shiro-quick-start - prefix =「Sec」來引導不同的Shiro類grails run-app失敗,並顯示下面顯示的堆棧跟蹤。在創建ShiroFilters時,Grails + Shiro插件無法解析對bean的引用transactionManager

有人知道究竟發生了什麼問題嗎?

當凝視以下異常所示的應用:

運行Grails應用程序.. 2011-05-09 16:14:31209 [主要] ERROR context.GrailsContextLoader - 錯誤 執行引導程序:創建名稱爲 的bean時出錯 'org.apache.shiro.grails.ShiroFilters': Bean初始化失敗;嵌套0​​例外是 org.springframework.beans.factory.BeanCreationException:與名 'shiroAnnotationHandlerService' 錯誤創建豆: 無法解析參考豆 'transactionManager的',而設置 bean屬性 'transactionManager的'; 嵌套的例外是 org.springframework.beans.factory.NoSuchBeanDefinitionException: 沒有名爲 'transactionManager的' 豆是 定義 org.springframework.beans.factory.BeanCreationException: 錯誤創建名稱爲 「org.apache.shiro豆。 grails.ShiroFilters': 初始化bean失敗;嵌套0​​例外是 org.springframework.beans.factory.BeanCreationException:與名 'shiroAnnotationHandlerService' 錯誤創建豆: 無法解析參考豆 'transactionManager的',而設置 bean屬性 'transactionManager的'; 嵌套的異常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: 否名爲 'transactionManager的' 豆是 org.grails.tomcat.TomcatServer.start(TomcatServer.groovy:212)定義 在 grails.web。 container.EmbeddableServer $ start.call(未知 源)在 _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)在 RunApp $ _run_closure1.doCall(RunApp.groovy:33)在 gant.Gant $ _dispatch_closure5.doCall(Gant.groovy:381) 在 GANT .Gant $ _dispatch_closure7.doCall(Gant.groovy:415) at gant.Gant $ _dispatch_closure7.doCall(Gant。常規)在 gant.Gant.withBuildListeners(Gant.groovy:427) 在 gant.Gant.this $ 2 $ withBuildListeners(Gant.groovy) 在 gant.Gant $這個$ 2 $ withBuildListeners.callCurrent(未知 來源)在 gant.Gant.dispatch(Gant.groovy:415) 在 gant.Gant.this $ 2 $訊(Gant.groovy) 在 gant.Gant.invokeMethod(Gant.groovy) 在 gant.Gant。 executeTargets(Gant.groovy:590) at gant.Gant.executeTargets(Gant.groovy:589) 造成者: org.springframework.beans.factory.BeanCreationExcepti on: 創建名爲 'shiroAnnotationHandlerService'的bean時出錯: 在設置 bean屬性'transactionManager'時,無法解析對bean的引用 'transactionManager'; 嵌套的例外是 org.springframework.beans.factory.NoSuchBeanDefinitionException: 沒有名爲 'transactionManager的' bean是定義 ...... 23多所造成的: org.springframework.beans.factory.NoSuchBeanDefinitionException: 無豆命名爲「transactionManager的'是 定義... 23更多

回答

0

首先安裝Hibernate插件,然後才安裝Shiro插件。

transactionManager bean由Hibernate插件定義,所以Shiro插件類無法引用transactionManager bean是很正常的。

恥辱我!

+0

我認爲Hibernate插件的默認安裝與Grails? – 2011-05-10 03:19:26

+1

我開始在BuildConfig.groovy中聲明插件,而不是使用application.properties?在安裝Shiro插件之前,我可能忘記將hibernate插件從application.properties複製到BuildConfig.groovy。 – Ruben 2011-05-11 06:30:11

相關問題