httpservletrequest在aspect中使用时抛出错误

zte4gxcn  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(309)

我有一个方法,它有一个方面。当我尝试@autowire httpservletrequest并使用request.getheader(something)时,我得到了这个错误-
找不到线程绑定请求:您是在实际web请求之外引用请求属性,还是在最初接收线程之外处理请求?如果您实际上在web请求中操作,并且仍然收到此消息,那么您的代码可能在dispatcherservlet之外运行:在这种情况下,请使用requestcontextlistener或requestcontextfilter公开当前请求。
我该怎么解决这个问题?我尝试使用requestcontextholder,但调试后仍然看到null。当我的项目没有web.xml时,如何使用requestcontextlistener。

gopyfrb3

gopyfrb31#

可以使用下面的httpservletrequest访问请求头。

private static HttpServletRequest getRequest() {
    return((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
}

public static String getApiTraceId() {
    return getRequest().getHeader(something);
}

相关问题