2015-05-04 52 views
0

反對這種錯誤的戰鬥過了一會兒:shiro和webflow不兼容?

Caused by HibernateException: No Session found for current thread 
->> 102 | doCall    in org.grails.datastore.gorm.GormStaticApi$_methodMissing_closure2 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|  73 | isPermitted   in sie.DbRealm 
| 237 | isPermitted . . . . in org.apache.shiro.grails.RealmWrapper 
|  59 | isPermitted   in org.apache.shiro.grails.RealmAdapter 
| 223 | isPermitted . . . . in org.apache.shiro.authz.ModularRealmAuthorizer 
| 113 | isPermitted   in org.apache.shiro.mgt.AuthorizingSecurityManager 
| 158 | isPermitted . . . . in org.apache.shiro.subject.support.DelegatingSubject 
| 470 | accessControlMethod in ShiroGrailsPlugin 
| 234 | doCall . . . . . . in ShiroGrailsPlugin$_closure3$_closure24 
|  15 | doCall    in sie.SecurityFilters$_closure1$_closure2$_closure3 
| 189 | doFilter . . . . . in grails.plugin.cache.web.filter.PageFragmentCachingFilter 
|  63 | doFilter   in grails.plugin.cache.web.filter.AbstractFilter 
| 449 | executeChain . . . in org.apache.shiro.web.servlet.AbstractShiroFilter 
| 365 | call    in org.apache.shiro.web.servlet.AbstractShiroFilter$1 
|  90 | doCall . . . . . . in org.apache.shiro.subject.support.SubjectCallable 
|  83 | call    in  '' 
| 383 | execute . . . . . . in org.apache.shiro.subject.support.DelegatingSubject 
| 362 | doFilterInternal in org.apache.shiro.web.servlet.AbstractShiroFilter 
| 125 | doFilter . . . . . in org.apache.shiro.web.servlet.OncePerRequestFilter 
| 1142 | runWorker   in java.util.concurrent.ThreadPoolExecutor 
| 617 | run . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 745 | run     in java.lang.Thread 

我已得出結論四郎和Webflow的是不相容的。我正在使用grails 2.5.0。任何建議來解決這個問題?

回答

0

我有同樣的問題。

ShiroSecurityFilters.groovy

User.withTransaction { 
    accessControl() 
} 

希望這將解決這個問題做了這個解決辦法。

清理解決方案可能是委託您的領域中的isPermitted()方法來使用事務性服務訪問數據庫。