Estou trabalhando com Web Service REST com Glassfish 3. Me deparei com a seguinte necessidade: O client faz diversas conexões no WS, cada conexão é um passo de uma transação financeira, quando chegamos no último passo a transação será concluída e um comprovante será impresso, porém são três vias de comprovante, e infelizmente para cada via do comprovante o client faz uma conexão, mas os dados das vias são os mesmos, e esse client é uma espécie de “terminal burro”, sendo assim não tem como ele gerenciar essa impressão de vias, por isso ele precisa fazer essas três conexões para imprimir as vias. Para não ter que ficar buscando os dados no banco em cada conexão, pensei em jogar esses dados na memória e busca-los a cada solicitação de via do comprovante, mas googlando vi artigos dizendo que não seria possível manipular a memória com o java como fazíamos em delphi 5 (rsrsrs). Algumas buscas aqui no GUJ vi que é possível usar controle de sessão com web service, porém não é muito eficaz. Alguém já passou por isso ou tem alguma boa ideia e possa compartilhar.
Você sabe que manter valores em memória, em serviços REST, fere totalmente os conceitos desse tipo de serviço, né? Acredito que você teria que achar uma forma de resolver seu problema sem recorrer a isso. Pode passar mais detalhes?
[quote=Alexandre Saudate]Opa, estou chegando um pouco tarde…
Você sabe que manter valores em memória, em serviços REST, fere totalmente os conceitos desse tipo de serviço, né? Acredito que você teria que achar uma forma de resolver seu problema sem recorrer a isso. Pode passar mais detalhes?
[]'s[/quote]
REST não diz nada sobre onde manter os valores, apenas que a comunicação entre o servidor e o cliente deve ser stateless.
Ah sim, nada como cortar a definição do wikipedia até onde é conveniente, não é mesmo?
O que você diz que é a definição do wikipedia[quote]In computing, a stateless protocol is a communications protocol that treats each request as an independent transaction that is unrelated to any previous request so that the communication consists of independent pairs of requests and responses.[/quote]
Agora a definição completa do que está no wikipedia[quote]In computing, a stateless protocol is a communications protocol that treats each request as an independent transaction that is unrelated to any previous request so that the communication consists of independent pairs of requests and responses. A stateless protocol does not require the server to retain session information or status about each communications partner for the duration of multiple requests. In contrast, a protocol which requires the keeping of internal state is known as a stateful protocol.[/quote]
Interessante a parte que ficou faltando no seu post, né?
Mas tudo bem, devido à sua fama não vou ficar argumentando.
[quote=Rodrigo Sasaki]
Ah sim, nada como cortar a definição do wikipedia até onde é conveniente, não é mesmo?
O que você diz que é a definição do wikipedia[quote]In computing, a stateless protocol is a communications protocol that treats each request as an independent transaction that is unrelated to any previous request so that the communication consists of independent pairs of requests and responses.[/quote]
Agora a definição completa do que está no wikipedia[quote]In computing, a stateless protocol is a communications protocol that treats each request as an independent transaction that is unrelated to any previous request so that the communication consists of independent pairs of requests and responses. A stateless protocol does not require the server to retain session information or status about each communications partner for the duration of multiple requests. In contrast, a protocol which requires the keeping of internal state is known as a stateful protocol.[/quote]
Interessante a parte que ficou faltando no seu post, né?
Mas tudo bem, devido à sua fama não vou ficar argumentando.[/quote]
Você deve ser um troll ou estou dormindo ainda…
AOnde você está lendo que em um protocolo stateless não se pode manter valores na memória? :shock: