Область 'сессия' не активна для текущего потока; IllegalStateException: не найден связанный с потоком запрос

У меня есть контроллер, который яЯ хотел бы быть уникальным для каждой сессии. Согласно весенней документации есть две детали реализации:

1. Начальная веб-конфигурация

Чтобы поддерживать область действия bean-компонентов на уровне запросов, сеансов и глобальных сеансов (bean-объекты bean-scoped), перед определением ваших bean-компонентов требуется небольшая начальная настройка.

я добавил следующее в мойweb.xml как показано в документации:


  
    org.springframework.web.context.request.RequestContextListener
  

2. Область применения бобов как зависимости

Если вы хотите внедрить (например) bean-объект области действия HTTP-запроса в другой bean-компонент, вы должны внедрить прокси-сервер AOP вместо этого bean-объекта. I '

аннотировал боб@Scope предоставляяproxyMode как показано ниже:

@Controller
@Scope(value="session", proxyMode=ScopedProxyMode.TARGET_CLASS)
public class ReportBuilder implements Serializable {
    ...
    ...
}

проблема

Несмотря на вышеуказанную конфигурацию, я получаю следующее исключение:

org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем 'scopedTarget.reportBuilder»: Объем 'сессия» не активен для текущего потока; рассмотрите возможность определения прокси-объекта с заданной областью действия для этого компонента, если вы собираетесь ссылаться на него из одноэлементного объекта; Вложенное исключение - java.lang.IllegalStateException: не найден привязанный к потоку запрос: Вы ссылаетесь на атрибуты запроса вне фактического веб-запроса или обрабатываете запрос вне первоначально получающего потока? Если вы действительно работаете в веб-запросе и по-прежнему получаете это сообщение, ваш код, вероятно, выполняется за пределами DispatcherServlet / DispatcherPortlet: в этом случае используйте RequestContextListener или RequestContextFilter, чтобы отобразить текущий запрос.

Обновление 1

Ниже мой компонент сканирования. У меня есть следующее в:web.xml


  contextClass
  
    org.springframework.web.context.support.AnnotationConfigWebApplicationContext
  



  contextConfigLocation
  org.example.AppConfig



  org.springframework.web.context.ContextLoaderListener

И следующее в:AppConfig.java

@Configuration
@EnableAsync
@EnableCaching
@ComponentScan("org.example")
@ImportResource("classpath:applicationContext.xml")
public class AppConfig implements AsyncConfigurer {
  ...
  ...
}

Обновление 2I '

Мы создали воспроизводимый контрольный пример. Это гораздо меньший проект, поэтому есть различия, но возникает та же ошибка. Там'с довольно много файлов, так что яВыложил это какtar.gz вmegafileupload.

Ответы на вопрос(8)

Ваш ответ на вопрос