我有一些控制器和服务使用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方法中使用或引用请求对象。它似乎来自我使用配置。
非常感谢任何帮助。