Сопрограммы Kotlin с компонентами в области весеннего запроса

#spring #kotlin

#spring #kotlin

Вопрос:

У меня есть некоторый код, который использует компоненты в области запроса при вызове функции из сопрограммы. Похоже, spring не знает, что я все еще нахожусь внутри того же запроса.

Возможно ли заставить spring понять, что мне все еще нужен компонент с областью запроса, даже если вызов выполняется из асинхронной сопрограммы Kotlin?

Я получаю это сообщение об ошибке при запуске кода:

 org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'scopedTarget.wsContext': 
Scope 'request' 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: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
  

Комментарии:

1. Я не думаю, что это пока возможно. Поддержка совместной процедуры добавляется весной 5.2.

Ответ №1:

Сопрограммы независимы от основного потока, поэтому вам необходимо предоставить все данные в области сопрограмм вручную