spring:No thread-bound request found

在 Spring中使用 多線程中, 應注意  新起的線程是不能直接訪問主線程的生命週期結束的變量

比如在 在 web應用中 在新起的線程中使用 HttpServletRequest , 會報出 IllegalStateException 的異常, 需要在使用 Request 的地方捕獲異常, 或者把Request的對象傳遞到新起的線程裏面

 

 

java.lang.IllegalStateException: 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.
	at org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes(RequestContextHolder.java:131)
	at org.springframework.web.context.support.WebApplicationContextUtils.currentRequestAttributes(WebApplicationContextUtils.java:309)
	at org.springframework.web.context.support.WebApplicationContextUtils.access$400(WebApplicationContextUtils.java:64)
	at org.springframework.web.context.support.WebApplicationContextUtils$RequestObjectFactory.getObject(WebApplicationContextUtils.java:325)
	at org.springframework.web.context.support.WebApplicationContextUtils$RequestObjectFactory.getObject(WebApplicationContextUtils.java:320)
	at org.springframework.beans.factory.support.AutowireUtils$ObjectFactoryDelegatingInvocationHandler.invoke(AutowireUtils.java:307)
	at com.sun.proxy.$Proxy172.getHeader(Unknown Source)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章