Grails错误:找不到线程绑定请求:您是否在引用请求属性...安装Spring Security Core之后

时间:2011-11-04 19:51:35

标签: grails spring-security illegalstateexception


我刚刚创建了一个新的grails-app,
一切都很好,直到我决定了 安装Spring Security Core。

安装Spring Security Core后 做s2-quickstart并击中
grails run-app,它产生了 以下错误:

URI
/test1/
Class
java.lang.IllegalStateException
Message
No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.

有人知道如何解决这个问题吗? 如果是,我真的很感激 你帮忙。我试过寻找
但是,其他网站的答案 我无法解决它。 :)
顺便说一下,我正在使用:
Spring Security Core 1.2.4
Grails 2.0.0.RC1

3 个答案:

答案 0 :(得分:16)

如果你正在使用Maven,请确保你的pom.xml上有这个:

<dependency>
    <groupId>org.grails.plugins</groupId>
    <artifactId>webxml</artifactId>
    <version>1.4.1</version>
    <scope>runtime</scope>
    <type>zip</type>
</dependency>

在BuildConfig中,groovy:

runtime ":webxml:1.4.1"

Grails 2.2.0为我解决了这个问题。

答案 1 :(得分:7)

如果您使用的是旧版Spring Security Core,则会发生这种情况。我从grails 1.3.7(和spring security 1.1.3)升级到grails 2.0.0时遇到了这个问题。修复程序是在application.properties中更改为spring-security-core 1.2:

plugins.spring-security-core=1.2

{현정建议的http://jira.grails.org/browse/GPSPRINGSECURITYCORE-98更多信息。

答案 2 :(得分:1)

尝试在web.xml文件中注册RequestContextListener侦听器。

文件:web.xml

<web-app>
   ...
   <listener>
    <listener-class>
        org.springframework.web.context.request.RequestContextListener
    </listener-class>
   </listener>
</web-app>