Servlet里调用SessionBean
sessionBean调用EntityBean
一、Servlet处理请求
try {
InitialContext ic = this.getInitialContext();
Object obj = ic.lookup("your Session's JNDI");
...SessionHome home = (...SessionHome)PortableRemoteObject.narrow(obj , ...SessionHome.class);
...Session session = home.create();
.................................
}catch(Exception e){}二、SessionBean的方法里,调用实体Bean对象:
private EntityBean(实体Bean) getHome() throws Exception {
Context ic = new InitialContext();
Object obj = ic.lookup("your Entity's JNDI");
...BeanHome home = (...BeanHome)PortableRemoteObject.narrow(obj , ...BeanHome.class);
return home;
}
上面方法得到实体Bean的接口,这样你就可以得到你想要的数据了。说明:
1、JB里可以整合weblogic和数据库来开发EJB,但用JB发布的EJB会有很多临时文件,而且JB与数据库连接后,直接生成实体Bean会太慢。所以一般的EJB还是需要自己来打包。
2、如果是远程调用。EJB与调用程序不在同一台机器上,EJB的接口须放到CLASSPATH里面去。
sessionBean调用EntityBean
一、Servlet处理请求
try {
InitialContext ic = this.getInitialContext();
Object obj = ic.lookup("your Session's JNDI");
...SessionHome home = (...SessionHome)PortableRemoteObject.narrow(obj , ...SessionHome.class);
...Session session = home.create();
.................................
}catch(Exception e){}二、SessionBean的方法里,调用实体Bean对象:
private EntityBean(实体Bean) getHome() throws Exception {
Context ic = new InitialContext();
Object obj = ic.lookup("your Entity's JNDI");
...BeanHome home = (...BeanHome)PortableRemoteObject.narrow(obj , ...BeanHome.class);
return home;
}
上面方法得到实体Bean的接口,这样你就可以得到你想要的数据了。说明:
1、JB里可以整合weblogic和数据库来开发EJB,但用JB发布的EJB会有很多临时文件,而且JB与数据库连接后,直接生成实体Bean会太慢。所以一般的EJB还是需要自己来打包。
2、如果是远程调用。EJB与调用程序不在同一台机器上,EJB的接口须放到CLASSPATH里面去。
SessionBean表示业务逻辑
EntityBean表示实体
一般在业务逻辑里调用实体
实体的表达方式有多种:CMP , BMP 等等。
你需要查询相关的文档。
祝你好运,共同学习!