2013-03-18 4 views
1

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

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

ответ

2

В случае среды REST @SessionScoped будет работать как в случае клиента браузера (если сервер REST поддерживает сеансы), но создаст новый компонент для каждого вызова в случае не-браузерного клиента (если клиент игнорирует coookies).

Возможно, @ApplicationScoped подходит для вашего?

+0

Спасибо за ваш ответ. ApplicationScoped не работает, потому что я хочу поведение SessionScoped. Но я хочу, чтобы поведение не зависело от HTTP-сессии. Вы знаете, как я могу это достичь? – user1727072

+0

Что ты имеешь в виду? Вы хотите использовать какой-то другой вид сеанса, а не http? –

+0

точно. Я хочу, чтобы SessionScope не зависел от HTTP-сессии. Я хочу свое собственное определение сеанса. – user1727072

2

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

Смежные вопросы