Galera, sou iniciante nos estudos sobre EJB e estou com o seguinte problema referente ao @Stateful já que ele é para guardar estado entre as requisições, mas, cada cliente é dono de uma instância: Crio uma instância do meu Bean (classe CarrinhoBean) dentro da minha servlet e chamo o método adicionaProduto normalmente através do meu JSP. Tudo é executado perfeitamente, mas a bronca esta quando abro um novo browser e chamo o método novamente, o estado é guardado, mas, os produtos são misturados entre as requisições. Por exemplo: abri o browser(cliente 1) e adicionei o produto 1 em seguida como o mesmo browser adicionei o produto 2 quando exibe o carrinho os dois produtos estão armazenados na minha coleção, até ai ok. quando abro um novo browser (cliente 2) e adiciono o produto 3 e solicito a exibição do carrinho aparecem todos os prpdutos que adicionei no (cliente 1) e também os que adicionei no (cliente 2).
Já que os beans @stateful são para guarda o estado e também para que cada instancia seja unica, por que é que quando exibo o carrinho depois de ter aberto o segundo browser (cliente 2) são mostrado todos os produtos adicionados???
Galera, sou iniciante nos estudos sobre EJB e estou com o seguinte problema referente ao @Stateful já que ele é para guardar estado entre as requisições, mas, cada cliente é dono de uma instância: Crio uma instância do meu Bean (classe CarrinhoBean) dentro da minha servlet e chamo o método adicionaProduto normalmente através do meu JSP. Tudo é executado perfeitamente, mas a bronca esta quando abro um novo browser e chamo o método novamente, o estado é guardado, mas, os produtos são misturados entre as requisições. Por exemplo: abri o browser(cliente 1) e adicionei o produto 1 em seguida como o mesmo browser adicionei o produto 2 quando exibe o carrinho os dois produtos estão armazenados na minha coleção, até ai ok. quando abro um novo browser (cliente 2) e adiciono o produto 3 e solicito a exibição do carrinho aparecem todos os prpdutos que adicionei no (cliente 1) e também os que adicionei no (cliente 2).
Já que os beans @stateful são para guarda o estado e também para que cada instancia seja unica, por que é que quando exibo o carrinho depois de ter aberto o segundo browser (cliente 2) são mostrado todos os produtos adicionados???
agradeço.
o @Stateful guarda informações pro “resto da vida” (enquanto o servidor rodar)
utilize o stateless
gilmaslima
RenanRosa:
pnneto3:
Galera, sou iniciante nos estudos sobre EJB e estou com o seguinte problema referente ao @Stateful já que ele é para guardar estado entre as requisições, mas, cada cliente é dono de uma instância: Crio uma instância do meu Bean (classe CarrinhoBean) dentro da minha servlet e chamo o método adicionaProduto normalmente através do meu JSP. Tudo é executado perfeitamente, mas a bronca esta quando abro um novo browser e chamo o método novamente, o estado é guardado, mas, os produtos são misturados entre as requisições. Por exemplo: abri o browser(cliente 1) e adicionei o produto 1 em seguida como o mesmo browser adicionei o produto 2 quando exibe o carrinho os dois produtos estão armazenados na minha coleção, até ai ok. quando abro um novo browser (cliente 2) e adiciono o produto 3 e solicito a exibição do carrinho aparecem todos os prpdutos que adicionei no (cliente 1) e também os que adicionei no (cliente 2).
Já que os beans @stateful são para guarda o estado e também para que cada instancia seja unica, por que é que quando exibo o carrinho depois de ter aberto o segundo browser (cliente 2) são mostrado todos os produtos adicionados???
agradeço.
o @Stateful guarda informações pro “resto da vida” (enquanto o servidor rodar)
utilize o stateless
Segundo sua descrição vc precisa usar o Stateful mesmo proque você precisa guardar os estados, o Stateful tem passivação, então você não vai perder os dados e também e gerado um id para cada cliente(stub) então não era pra estar misturando as informações.