Spring Error: "Session" Scope "не активен для текущего потока; рассмотрите возможность определения прокси-объекта с областью действия для этого компонента" - PullRequest
0 голосов
/ 02 января 2019

Прежде всего, я последовал предложению в этой теме: https://stackoverflow.com/a/26327870/1005607

В моем приложении с графическим интерфейсом есть бин Session-scoped.В приложении также есть процессы Job (не-GUI), которые обращаются к этому компоненту вне структуры запроса.

Версия Spring: 4.1.5

Определение::

Класс сессионного компонента (обратите внимание на ScopedProxyMode)

@Component
@Scope(value="session", proxyMode=ScopedProxyMode.TARGET_CLASS)
public class MyBean implements Serializable {
   //...
}

web.xml имеет ссылку на RequestContextListener:

<listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener> 

В некоторых местах задание ссылается на сессионный компонентследующим образом

@Autowired
private MyBean myBean; 

Когда задание без графического интерфейса обращается к этому бину, я все еще получаю сообщение об ошибке:

    org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'scopedTarget.myBean': 
  Scope 'session' is not active for the current thread; 
  consider defining a scoped proxy for this bean if you intend to refer to it   
from a singleton; nested exception is 



   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.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:352)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...