Как использовать CDI-@SessionScoped без http-сессии

Можно ли использовать CDI-@Sessionscoped, когда http-сессия недоступна (например, когда используется RESTful-WS?). А если нет, есть ли альтернатива @SessionScoped? Я спрашиваю, потому что мне нужно иметь состояние приложения, но я также вынужден использовать JAX-RS.

По какой-то причине я могу добавить бины @SessionScoped в RESTful-Service, но я знаю, что это, по крайней мере, по соглашению, недопустимо. Кроме того, использование @SessionScoped требует, чтобы JSessionID-Cookie отправлялся в заголовках каждого клиентского запроса, и поскольку служба используется в среде, не являющейся браузером, я не могу быть уверен, что файлы cookie можно использовать...

2 ответа

В случае окружающей среды ОТДЫХА @SessionScoped будет работать как исключение в случае клиента браузера (если сервер REST поддерживает сеансы), но будет создавать новый bean-компонент при каждом вызове в случае клиента без браузера (если клиент игнорирует куки).

Может быть @ApplicationScoped хорошо для тебя?

Вы всегда можете создать свой собственный контекст и область.

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