Я использую FeignClient для вызова другой службы для запроса какого-либо ресурса.FeignClient вызывается с помощью аннотированного метода @Scheduled
, который выполняется каждые x минут.При запуске приложения и выполняемого метода выдается следующая ошибка:
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.
Я запускаю Spring Boot 2.1.4 с Kotlin 1.3.31.Похоже, игра с настройками потоков не помогла.
@FeignClient(url = "\${example-service.url}", name = "example-service", configuration = [FeignConfiguration::class])
interface ExampleClient {
@GetMapping("/v1/example/?exampleName={exampleName}")
fun getExampleByNameReponse(@Param("exampleName") exampleName: String): List<ExampleApiResponse>
}
class FeignConfiguration {
@Bean
fun feignContract(): SpringMvcContract = SpringMvcContract()
@Bean
fun feignRequestInterceptor(): RequestInterceptor = FeignRequestInterceptor()
}
Я ожидаю, что запланированное задание будет запускаться каждый период x и извлекать ресурсы из FeignClient без ошибок.Он должен использовать запланированное задание, так как он должен быть обновлен.