站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题大侠路过帮忙解答:EJB中EJBHome中的Create()方法调用过程

大侠路过帮忙解答:EJB中EJBHome中的Create()方法调用过程

摘要: 大侠路过帮忙解答:EJB中EJBHome中的Create()方法调用过程


我刚刚接触EJB对继承EJBHome的接口中申明的Create()方法调用过程搞不清楚,它是返回的是一个继承EJBObject接口啊,那这个类怎么会执行实现SessionBean接口的类里面的具体方法呢???
具体如下:
public interface UserInfo extends EJBObject {
public String hello() throws RemoteException;
}

public interface UserInfoHome extends EJBHome {
public UserInfo create() throws CreateException, RemoteException;
}

public class UserInfoBean implements SessionBean {
SessionContext sessionContext;
public void ejbCreate() throws CreateException {
}

public void ejbRemove() {
}

public void ejbActivate() {
}

public void ejbPassivate() {
}


public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}

public String hello() {
System.out.print("HELLO");
return "helloWorld!!!";
}
}




关注...

顶下


我想楼主你是对运作流程不怎么了解而已~~~
运作流程如下:
(1)客户端(相对于EJBContainer来说,客户端可以是JSP,Servlet,JavaBean或者是JavaApplication)通过JNDI上查找EJBHome对象,如果所要查找的EJBHome存在,则返回EJBHome对象.(顺便说一下:EJBHome对象是EJBObject对象工厂,管理EJBObject的生命周期);
(2)客户端通过RMI调用所获取的EJBHome对象的create()方法返回EJBObject对象;
(3)客户端再次通过RMI调用所获取的EJBObject对象的业务方法hello(),这个时候EJBObject就会把请求委托给Bean Class(也就是你的UserInfoBean),进而执行Bean Class中的hello()方法

这个运作流程过程中运用了代理模式和委托模式~~~Ending


还是看下书先了解一下,你一点都不了解,不好给你叙述问题啊


谢谢二楼!我基本上明白了执行的过程,但是对你的第三步我想问EJB是通过怎样的机制去调用UserInfoclass中的hello()方法,请再帮忙说说清楚,谢谢了!


(2)客户端通过RMI调用所获取的EJBHome对象的create()方法返回EJBObject对象;
--------------应该返回的是EJBObject对象的存根程序,而不是EJB容器中的EJBObject对象


客户请求代理去办事情----》代理去找公司办事情---》公司具体事情由职员完成
代理就是 EJBObject对象的存根程序
公司就是EJBObject对象
职员就是Bean Class(也就是你的UserInfoBean),


EJBObject对象的存根程序在上边例子中是指什么,谢谢.


↑返回目录
前一篇: 如何用servlet实现服务器推技术?(拜请各位大侠不吝赐教)
后一篇: 这个问题没人会