潜在的回归错误:Grails2.4.0->;2.4.2在控制器中使用后构造

潜在的回归错误:Grails2.4.0->;2.4.2在控制器中使用后构造,grails,Grails,我有一些控制器和服务使用PostConstruct注释从grailsApplication获取值。在2.4.0及之前的版本中,这些都可以正常工作,但在升级到2.4.2之后,我突然在启动过程中出现了一个错误: 消息:创建名为“com.domain.AuthenticationController”的bean时出错:调用init方法失败;嵌套异常为java.lang.IllegalStateException:未找到线程绑定请求:您是在实际web请求之外引用请求属性,还是在原始接收线程之外处理请求?

我有一些控制器和服务使用PostConstruct注释从grailsApplication获取值。在2.4.0及之前的版本中,这些都可以正常工作,但在升级到2.4.2之后,我突然在启动过程中出现了一个错误:

消息:创建名为“com.domain.AuthenticationController”的bean时出错:调用init方法失败;嵌套异常为java.lang.IllegalStateException:未找到线程绑定请求:您是在实际web请求之外引用请求属性,还是在原始接收线程之外处理请求?如果您实际上在web请求中操作,并且仍然收到此消息,那么您的代码可能在DispatcherServlet/DispatcherPortlet之外运行:在这种情况下,请使用RequestContextListener或RequestContextFilter公开当前请求

正在讨论的init方法:

@PostConstruct
def init() {
    tokenValidity = grailsApplication.config.user.accessToken.validity
}
如您所见,我根本没有在init方法中使用或引用请求对象。它似乎来自我对配置的使用


非常感谢您的帮助。

看起来您的应用程序没有安装插件。请仔细检查。

您是正确的,但是为什么我需要webxml插件,为什么它在2.4.2之前没有webxml插件就可以工作?我不确定这个问题,但答案是这个插件在生成的web.xml文件中指定了特定的过滤器顺序。只有当任何插件的过滤器需要相对于Grails或其他插件添加的过滤器处于特定位置时,才需要这样做。