Как использовать CDI-@SessionScoped без http-сессии
Можно ли использовать CDI-@Sessionscoped, когда http-сессия недоступна (например, когда используется RESTful-WS?). А если нет, есть ли альтернатива @SessionScoped? Я спрашиваю, потому что мне нужно иметь состояние приложения, но я также вынужден использовать JAX-RS.
По какой-то причине я могу добавить бины @SessionScoped в RESTful-Service, но я знаю, что это, по крайней мере, по соглашению, недопустимо. Кроме того, использование @SessionScoped требует, чтобы JSessionID-Cookie отправлялся в заголовках каждого клиентского запроса, и поскольку служба используется в среде, не являющейся браузером, я не могу быть уверен, что файлы cookie можно использовать...
2 ответа
В случае окружающей среды ОТДЫХА @SessionScoped
будет работать как исключение в случае клиента браузера (если сервер REST поддерживает сеансы), но будет создавать новый bean-компонент при каждом вызове в случае клиента без браузера (если клиент игнорирует куки).
Может быть @ApplicationScoped
хорошо для тебя?
Вы всегда можете создать свой собственный контекст и область.