我有一个有状态的EJB充当购物车。我有两个servlet,其中一个用于将产品添加到购物车。另一个用于检索购物车信息,即。购物车中的产品和数量。
购物车在请求之间保持其状态,就像AddToCartServlet一样。然而,当使用ShoppingCartInfoServlet时,即使购物车中有多个产品,购物车中的产品列表也是0。因此,当我在ShoppingCartInfoServlet中时,似乎我没有获得相同的EJB。当然它应该是与我注释为@Stateful一样的EJB?
@Stateful
public class ShoppingCart {
List<Product> products;
...
}
public class AddToCartServlet extends HttpServlet {
@EJB
ShoppingCart shoppingCart;
...
}
public class ShoppingCartInfoServlet extends HttpServlet {
@EJB
ShoppingCart shoppingCart;
...
}
答案 0 :(得分:3)
有状态意味着同一个客户端(在这种情况下是servlet)将通过多个方法调用继续与同一个实例进行通信。
另一个客户端(Servlet)将获得它自己的实例。您必须将bean存储在http会话中才能实现所需。