EJB的Home和Object

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航