1.Home和Object
外部程序通过Home接口控制ejb的生命周期,包括创建、删除和定位Bean,而Object是对外的接口,外部程序程序通过Object访问ejb的业务逻辑方法
2.LocalHome 和LocalObject
和Home和Object一样区别在于LocalHome 和LocalObject是在本地调用
3. Object和LocalObject
在EJB2.0规范中定义了两种对外接口:Object(远程接口Remote Interface),LocalObject(本地接口Local Interfacce),其他程序调用ejb必须通过此对外接口完成,如果调用ejb的程序与ejb在同一应用服务器(如weblogic)中,这通过LocalObject(本地接口Local Interfacce)可以提高访问效率,如不在同一应用服务器就只能通过Object(远程接口Remote Interface)
4.LocalHome ,Home
和Object和LocalObject一样判断使用LocalHome 或是Home主要看调用ejb的程序是否和ejb在同一应用服务器
例:
--------------------这是ejb的Bean类,主要用来封装业务逻辑------------------------------
package sessionbeanexample;
import javax.ejb.*;
public class Enterprise1Bean implements SessionBean {
SessionContext sessionContext;
public void ejbCreate() throws CreateException {
/**@todo Complete this method*/
}
public void ejbRemove() {
/**@todo Complete this method*/
}
public void ejbActivate() {
/**@todo Complete this method*/
}
public void ejbPassivate() {
/**@todo Complete this method*/
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
public String sayHello(String msg) {
System.out.println("Hello World "+msg);
return "Hello World "+msg;
}
}
---------这是Home接口,主要用来创建ejb,调用他的程序通过create() 方法创建ejb,该create()对应bean类中的ejbCreate(),只不过方法代码在bean定义,对外接口在Home中定义-----------------------
package sessionbeanexample;
import javax.ejb.*;
import java.util.*;
import java.rmi.*;
public interface Enterprise1Home extends javax.ejb.EJBHome {
public Enterprise1 create() throws CreateException, RemoteException;
}
-------这是LocalHome接口,主要用来本地创建ejb,和Home定义的区别在于由于本地(ejb和调用程序在同一应用服务器)调用而不抛出 RemoteException---------------------------
package sessionbeanexample;
import javax.ejb.*;
import java.util.*;
import java.rmi.*;
public interface Enterprise1Home extends javax.ejb.EJBHome {
public Enterprise1Local create() throws CreateException;
}
转自:http://community.csdn.net/Expert/topic/3501/3501780.xml?temp=.383877
---------这是Object接口,外部程序通过他来访问ejb的逻辑方法,调用他的程序通过调用Object接口的sayHello方法来调用对应在bean类中的sayHello,只不过方法代码在bean定义,对外接口在Object中定义-----------------------
package sessionbeanexample;
import javax.ejb.*;
import java.util.*;
import java.rmi.*;
public interface Enterprise1 extends javax.ejb.EJBObject {
public String sayHello(String msg) throws RemoteException;
}
---------这是LocalObject接口,除了该接口是本地(ejb和调用程序在同一应用服务器)访问和不抛出RemoteException外,其他和Object一样-----------------------
package sessionbeanexample;
import javax.ejb.*;
import java.util.*;
import java.rmi.*;
public interface Enterprise1 extends javax.ejb.EJBLocalObject {
public String sayHello(String msg) ;
}
补充:
这个 Enterprise1Local 应该是在ejb-jar.xml里定义的 --如:<remote>Enterprise1Local</remote>
就是ejb的 Object