Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

EJB Stateless é mesmo sem estado?

Pelo que entendi e pelos teste que fiz, as instâncias de EJB's Stateless guardam os valores de variaveis globais. Um usuário pode usar uma instância de EJB stateless e colocar em suas variáveis valores, após o uso a instância retorna para o pool e outro usuário poderá usá-la, o problema é que agora a instância estará "suja" com dados de outro usuário(sessão). Diante disso, é correto dizer que o EJB Stateless possue estado?

1 resposta
solução!

Olá Solimar,

Os Session Beans do EJB realmente mantém o estado do objeto, porém os seus tipos específicos possuem comportamentos diferentes cada um.

@Stateless - um Session Bean que é compartilhado entre clientes.

@Singleton - um Session Bean onde é garantido que existe apenas uma instância no container.

@Stateful - um Session Bean que é único para cada cliente.

Todos eles mantém o estado do objeto, mas com comportamentos diferentes em relação ao estado de conversação com o cliente.

No caso do Stateless Session Bean, a palavra Session passa a idéia de que o estado do objeto é mantido, enquanto a palavra Stateless diz que o estado da conversação com o usuário não é mantido, uma vez que após o uso do Bean, o mesmo volta para o Pool e pode ser utilizado por outro usuário, não existindo a garantia de que o mesmo usuário utilize sempre a mesma instância do Bean.