3

私は、Web リクエストの途中である場合、またはそうでない場合に何かを行う必要があるソリューションに取り組んでいます。

私がしていることは

@Autowired private HttpServletRequest request;

そして、変数にアクセスしようとしています:

request.getRequestURI()

しかし、私は得ていますjava.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request...

例外を回避し、どういうわけかHttpServletRequest天気を尋ねたり、Web リクエストに参加しているかどうかを尋ねたりしたいと思います。

それを行う方法はありますか?

例: 追加情報:

@Override
public void trace(String msg) { 
    if (loggerFactory.isRegisteredUrl(request.getRequestURI())){
        loggerFactory.getCustomeLogger(request.getRequestURI()).trace(msg);
        return;
    }
    nativelogger.trace(msg);
}
4

1 に答える 1

2

おそらく(テストされていませんが)RequestContextHolder.getRequestAttributes()を使用する必要があります。

現在スレッドにバインドされている RequestAttributes を返します。

戻り値: 現在スレッドにバインドされている RequestAttributes、または何もバインドされていない場合は null

そのため、メソッドが null を返す場合、現在のスレッドはリクエストを処理していません。null 以外の値を返す場合は、1 つを処理しています。

于 2013-10-06T13:50:10.887 に答える