耽误您几分钟帮忙看一下好吗,谢谢
这是客户端测试代码
public static void main(String[] args) throws NamingException {
InitialContext initialContext = new InitialContext();
StatelessEjb ejb1 = (StatelessEjb)initialContext.lookup("StatelessEjbBean/remote");
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
System.out.println("--------第一次会话结束,第二次会话开始----------");
/**
* 第二次会话
*/
StatelessEjb ejb2 = (StatelessEjb)initialContext.lookup("StatelessEjbBean/remote");
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
} 这是ejb实现类 package com.bjsxt.ejb; import javax.ejb.Remote;
import javax.ejb.Stateless; @Stateless
@Remote
public class StatelessEjbBean implements StatelessEjb { private int state; public void compute(int i) {
state = state + 1;
} public int getResult() {
return state;
}
} 我输出的结果是这样
0
0
0
0
0
0
0
--------第一次会话结束,第二次会话开始----------
6
6
6
6
6
6
6 怎么是这种结果呢,按理说应该是这样啊
0
1
2
3
4
5
6
--------第一次会话结束,第二次会话开始----------
6
7
8
9
10 希望帮忙,再次感谢,我很郁闷,我是看着教程做的
这是客户端测试代码
public static void main(String[] args) throws NamingException {
InitialContext initialContext = new InitialContext();
StatelessEjb ejb1 = (StatelessEjb)initialContext.lookup("StatelessEjbBean/remote");
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
ejb1.compute(1);
System.out.println(ejb1.getResult());
System.out.println("--------第一次会话结束,第二次会话开始----------");
/**
* 第二次会话
*/
StatelessEjb ejb2 = (StatelessEjb)initialContext.lookup("StatelessEjbBean/remote");
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
ejb2.compute(1);
System.out.println(ejb2.getResult());
} 这是ejb实现类 package com.bjsxt.ejb; import javax.ejb.Remote;
import javax.ejb.Stateless; @Stateless
@Remote
public class StatelessEjbBean implements StatelessEjb { private int state; public void compute(int i) {
state = state + 1;
} public int getResult() {
return state;
}
} 我输出的结果是这样
0
0
0
0
0
0
0
--------第一次会话结束,第二次会话开始----------
6
6
6
6
6
6
6 怎么是这种结果呢,按理说应该是这样啊
0
1
2
3
4
5
6
--------第一次会话结束,第二次会话开始----------
6
7
8
9
10 希望帮忙,再次感谢,我很郁闷,我是看着教程做的
解决方案 »
- java的jdk-6u34-windows-i586和eclipse安装问题
- xfire 客户端调用怎么带一个List<t>
- struts2 java.lang.NullPointerException 错误 请教。。。。。。。
- JAVA中base64的加密解密
- 在进行多线程通信时.。。。这题应该选择什么
- TCP链接的问题
- 麻烦帮我看一下struts的validation.xml~~运行没反映~~~~~~~~`
- 为什么我只能在面板上加按钮,别的控件加不了?
- Struts里jsp提交后不报错,只显示空白页面?
- 两个List过滤的问题
- ejb3实体bean生成表时,外键丢失
- 问1个关于STRUTS2标签循环显示的问题 求指教!
不论如何,像这种在无状态会话Bean中存储状态的做法是不可取的。
量中的内容与调用是无关的,因此称为无状态的 Session Bean。无状态的 Session Bean 中一般只写一些 final 的成员变量或者是不会更改的成员变量。否则的话需
要使用有状态的 Session Bean
你这样做的是不合法的,stateless session bean一般不要对对象变量进行操作,因为它是单例的,多个线程并行访问会有同步问题!
6
6
6
6
6
6
6