【发布时间】:2013-02-02 13:54:26
【问题描述】:
服务器在 GlassFish 3.0 上运行
@Stateless(mappedName="messengerservice")
public class MessengerService implements MsnService{
int count;
@Override
public int getCount() {
// TODO Auto-generated method stub
count = count+1;
return count;
}
}
客户
for(int i=0;i<5;i++){
MsnService br = (MsnService) ctx.lookup("java:global/EJbTutorial/MessengerService");
System.out.println(br.getCount());
}
输出
1
2
3
4
5
EJB 规范说服务器维护一个会话 bean 池,我在一个实例中增加值,重新查找希望得到一个新实例,并且似乎维护了实例变量值
这怎么可能?除非服务器每次都向我返回相同的实例,否则就是这样。
我什至尝试在循环中执行它并得到相同的结果。 任何人都可以阐明一些观点
【问题讨论】:
-
如果你一次只有一个请求,那么容器只需要创建一个bean的实例。如果您在并行线程中运行多个客户端,您应该看到有多个 bean 实例在运行。
-
@TomAnderson 它确实做到了。谢谢
标签: java jakarta-ee ejb-3.0 instance-variables stateless-session-bean