Как получить сессионный объект при работе на веб-сервисах? - PullRequest
2 голосов
/ 16 января 2010

Как получить объект сеанса при работе на веб-сервисах?

Сервисы вызываются между двумя программами. Как получить объект сеанса пользователя при работе с веб-сервисами. Невозможно получить сеанс, используя объект запроса, так как не будет запроса или ответа, когда мы говорим об услугах.

1 Ответ

5 голосов
/ 16 января 2010

Если вы работаете с JAX-WS для создания своих веб-служб, то вы можете получить доступ к объекту HttpServletRequest (и, следовательно, к вашему HttpSession объекту) через WebServiceContext .

@WebService(...)
public class MyService {
    @Resource
    private WebServiceContext ctx;

    private HttpSession getSession() {
        HttpServletRequest req = (HttpServletRequest) this.ctx.getMessageContext()
                .get(MessageContext.SERVLET_REQUEST);
        return req.getSession();
    }
}

Более подробный пример см., Например, "Поддержка сессий с использованием JAX-WS 2.0" от Art Frechette.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...