如何区分EJB究竟是有态还是无态的啊?

stephenxu 2003-10-20 05:47:31
在代码里有无什么明显的标志的啊?我是个Beginner,请指教!

另外,有态和无态的EJB在性能上有和区别呢?


谢谢各位啦!
...全文
22 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
stephenxu 2003-10-21
  • 打赏
  • 举报
回复
还有
import simpleBean.*;
从那里来的啊?
要在JB中设置的吗?
stephenxu 2003-10-21
  • 打赏
  • 举报
回复
cootme2002(COOTME)
请问你这里的
EJBMetaData date = home.getEJBMetaData();

是EJB里面的一个方法吗?
是不是一根据调用EJB中的某个方法来判断EJB的类型啊?
cootme2002 2003-10-20
  • 打赏
  • 举报
回复
我不知道楼主所想用什么方法知道bean是哪种bean?

1.要只是想在静态下知道为何种bean的话,可以和上面说的一样,看看描述符就是了。
2.要是想在动态下知道是哪种bean的话,就需要自己编写代码了,如下是判断一个bean
是无状态/状态/entity Bean:
import javax.ejb.*;
import simpleBean.*;

import javax.naming.InitialContext;
import java.lang.reflect.*;

class SalaryInspector{
public static void main(String[] args){
try{
InitialContext ctx = new InitialContext();
Object objRef = ctx.lookup("Salary");
SalaryHome home = (SalaryHome)javax.rmi.PortableRemoteObject.narrow(
objRef, SalaryHome.class);
EJBMetaData date = home.getEJBMetaData();

String beanType = "";
if(date.isSession){
if (date.isStatelessSession()){
beanType = "Stateless Session Bean";
}else{
beanType = "Stateful Session Bean";
}else{
beanType = "Entity Bean";
}
System.out.println("Beantype: " + beanType);
}catch(javax.naming.NamingException ne){
}catch(java.rmi.RemoteException re){
}
}
}
livingboy 2003-10-20
  • 打赏
  • 举报
回复
如果用jb9.0里只要新建ejb 2.0 Bean Designer 修改其Session type 属性就可以了,自动生成xml 文件,
还有一种方法就是上面这为老兄直接修改
fanth 2003-10-20
  • 打赏
  • 举报
回复
在ejb-jar.xml文件里可以看元素<session-type>中的属性,Stateless是无状态的,Stateful是有状态的。
如果你是用JBuilder开发的话,这个文件是自动生成的,现在一般都是这么用。
要想看到也不难,在EJB Designer中,创建EJB的时候可以选择。

有态和无态的区别不在性能上,在功能上。有态的带参数,即属性;无态的则不能带。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧