Нормально ли терять область запросов Java EE при использовании параллельного потока Java 8?

В нашей компании мы разрабатываем квазистандартный сервис REST, работающий в среде wildfly 10.1. Каждый запрос имеет заголовок арендатора, который будет перехвачен фильтром, и информация об арендаторе будет сохранена в @RequestScoped bean для последующего использования внутри остального или сервисного уровня. Все идет нормально. Теперь мы обнаружили, что некоторый код внутри службы использует параллельный поток Java 8 и не может использовать @RequestScoped bean для поиска текущего арендатора. Мы проверили это несколько раз. Использование непараллельных потоков решило эту проблему для нас.

Это нормальное поведение? Мы действительно смущены тем, что использование стандартных функций Java 8 нарушает наше ожидаемое поведение контейнера.

Есть ли еще такие виновники, о которых мы должны заботиться?

1 ответ

Кажется, что параллель будет порождать потоки даже в управляемом контексте.

Однако RequestScoped обрабатывается с использованием ThreadLocal (Мы все еще находимся в старой доброй многопоточной модели, т. Е. Поток HTTP Request = 1).

Так что да это нормально

Другие вопросы по тегам