Я запускаю процесс в отдельном потоке с тайм-аутом, используя ExecutorService и Future (пример кода здесь ) (поток «порождается» происходит в аспекте АОП).
Теперь основным потоком является запрос Resteasy .Resteasy использует одну или несколько переменных ThreadLocal для хранения некоторой контекстной информации, которую мне нужно получить в какой-то момент при вызове моего метода Rest. Проблема в том, что поскольку поток Resteasy работает в новом потоке, переменные ThreadLocal теряются.
Как лучше всего «распространить» любую переменную ThreadLocal, используемую Resteasy, в новый поток? Кажется, что Resteasy использует более одной переменной ThreadLocal для отслеживания контекстной информации, и я хотел бы «вслепую» передать всю информацию новому потоку.
Я рассмотрел создание подкласса ThreadPoolExecutor
и использование метода beforeExecute для передачи текущего потока в пул, но я не смог найти способ передать переменные ThreadLocal в бассейн.
Есть предложения?
Спасибо