Webservices + Sessão

4 respostas
dcbasso

Pessoal, eu estou conhecendo agora Webservices, fiz um servidor (EJB) para criar alguns serviços, porém agora gostaria de saber se é possível eu obter o valor da sessão, número ou um valor única para aquela requisição/solicitação/acesso ao meu WS?

Obrigado!

4 Respostas

Hebert_Coelho

Cara, não entendo muito desse assunto. Fiz um hello world com EJB + Glassfish a pouco tempo.

No meu caso eu acionava o WebServer e depois acionava o EJB.

Se vc estiver fazendo nesse processo, basta vc ir no servlet e capturar a session normalmente, tratar oq for para ser tratado e enviar para seu container EJB.

dcbasso

Mas assim, cara cliente que acessar irá ter um session diferente?
COmo faço para obter a session, tens algum exemplo?

Hebert_Coelho

Utilizando um WebServer basta fazer request.getSession() dentro do seu servlet. A pessoa tem um session por página que ela abrir. Faça um teste vc, crie duas contas de email e logue. Vc terá duas sessions diferentes.

No IE8 ele compartilha a sessão entre abas. É configurável.

No meu link tem um exemplo de como montar um WebServer. Nele não é feito getSession, mas um getAttribute. Caso vc não saiba como tratar esse tipo de requisição, ali vai dar para te dar uma idéia.

procura no google sobre request.getSession que c vai achar muito material sobre isso, eu não tenho aqui esse material. sorry.

Se a pessoa já tiver uma sessão ao fazer request.getSession() o servidor irá retornar a sessão do usuário.
Caso a pessoa esteja fazendo sua primeira requisião, então será retornado uma sessão nova.

vc poderia fazer o seguinte código:

HttpSession session = request.getSession(); if (session.isNew()) System.out.println("Seja bem vinda"); else System.out.println("Aeee, se voltou é pq meu programa ta baum e vc gostou!"); // O.o

Espero ter ajudado.

dcbasso

Sim entendi, mas o problema que meu webservices são acessados igual ao a NFe… Servidor dispõe o WSDL e o cliente acessa.

Assim:

@WebMethod(operationName = "receberEnsaios") public String receberEnsaios(@WebParam(name = "login") String login, @WebParam(name = "senha") String senha, @WebParam(name = "listaXML") String listaXML) {...}

Dentro do método não tem request…

Criado 10 de agosto de 2010
Ultima resposta 10 de ago. de 2010
Respostas 4
Participantes 2