刚开始学习。。
自己写了个有状态的EJB,功能很简单,可是出现了个奇怪的问题.
用的jboss-5.0.0.GA的版本
服务端代码:@Stateful
@Remote
public class TestBean implements TestEjb{
private int num = 0;
public void add(int i){
this.num = this.num + i;
} public void getNum(){
return this.num;
}
}客户端代码:public static void main(String args[]){
InitialContext context = new InitialContext();
TestEjb sif = ()context.lookup("TestBean/remote");
System.out.println(sif.getNum());
sif.setNum(1);
System.out.println(sif.getNum());
sif.setNum(1);
System.out.println(sif.getNum());
sif.setNum(1);
System.out.println(sif.getNum());
sif.setNum(1);
System.out.println(sif.getNum());
}为什么这么简单的StatefulBean在执行的时候,出现这样的结果
执行第一次:
0
0
0
1
2
怎么会这样?是不是类似于并发的问题阿?
按照尚学堂的视频教程上应该是:0 1 2 3 4 的呀,在执行一次也是这样的结果.
可是我的这个,执行第二次的时候,初始值,也就是第一个值竟然是1,
下面的几个值也也不知道怎么得到的.
自己写了个有状态的EJB,功能很简单,可是出现了个奇怪的问题.
用的jboss-5.0.0.GA的版本
服务端代码:@Stateful
@Remote
public class TestBean implements TestEjb{
private int num = 0;
public void add(int i){
this.num = this.num + i;
} public void getNum(){
return this.num;
}
}客户端代码:public static void main(String args[]){
InitialContext context = new InitialContext();
TestEjb sif = ()context.lookup("TestBean/remote");
System.out.println(sif.getNum());
sif.setNum(1);
System.out.println(sif.getNum());
sif.setNum(1);
System.out.println(sif.getNum());
sif.setNum(1);
System.out.println(sif.getNum());
sif.setNum(1);
System.out.println(sif.getNum());
}为什么这么简单的StatefulBean在执行的时候,出现这样的结果
执行第一次:
0
0
0
1
2
怎么会这样?是不是类似于并发的问题阿?
按照尚学堂的视频教程上应该是:0 1 2 3 4 的呀,在执行一次也是这样的结果.
可是我的这个,执行第二次的时候,初始值,也就是第一个值竟然是1,
下面的几个值也也不知道怎么得到的.
解决方案 »
- 关于接口和工厂模式的一点疑惑
- 客户端远程调用ejb3问题
- 做过JEE和FLEX的请进,几个基础问题.
- 如何配置weblogic的jms服务器?
- WebSphere下的ClassLoader问题
- 关于内存回收的问题
- 我在执行如下方法时竟出现执行两次的情况,导致表的键值违反唯一约束。实在搞不明白了,大家看一下
- 各位高手请多多帮忙,公司要的实在太紧,有关Jsp+servlet+ejb+sql的问题。高分
- Hibernate 级联查询 Exception
- 求救!!!e(fx)clipse在Eclipse Marketplace里搜不到
- 关于跳转后 相对路径发生改变的问题!
- Filter 问题,我要通过 Filter 做一个1分钟内限制请求次数的程序
return this.num;
}
这里是否有误,eclipse里 void 无返回值,为什么还 return ?