EJB学习笔记(四)EJB中bean上下文(context)区别于JNDI上下文
Bean的Context引用
每个bean 都有一个bean 的上下文即EJBContext ,SessionBean的继承后成为SessionContext(Entity Bean为EntityContext),他是bean到container的唯一Line,利用bean context ,bean能做很多事情,比如调用客户的安全信息,要求事物回滚,得到bean最近或Home的一个引用等等。
它一般在Bean类里面就定义好了 :
for example:
........
public class mySessionBean implements SessionBean{
.........
??? private SessionContext context;
..........
???? public void setSessionContext(SessionContext context){
?????????? this.context = context??? ;
..........
???? }
.........
}
JNDI上下文
??? JNDI上下文的话,是JNDI虚目录上的节点,InitialContext就是JNDI上下文,他是你进入容器树形结构的节点入口,每个bean都有自己特有的JNDI上下文,通过 JNDI,bean可以找到很多东西,包括资源管理连接工厂(CMP使用)
它一般都在客户要调bean逻辑的时候使用:
for examle:
public class client ....{
........
?????? Context initial = new InitialContext();
?????? Object objref = initial.lookup("myAccount");
?
?????? AcHome home = (AcHome)PortableRemoteObject.narrow(objref,AcHome.class);
????
?
????? AccountRemote r = home.create(id,date,vc,check,damount);
.......
?
}
?
要注意区分这两者。
http://hi.baidu.com/changkongyinxue/blog/item/c1e6fffcd6075a80b901a0b0.html