您的位置:首页 >> 编程开发 >> Java >> JavaBeans >> 正文
JavaBeans RSS
 

[转帖]Enterprise JavaBeans导论

http://www.rdxx.com 06年12月29日 16:45 ChinaUnix.net 我要投稿

关键词: JavaBeans , ERP , NT , BEA , Java


  目前厂商提供工具来读home 接口并产生作为容器的home object.在这种情况下厂商对每个enterprise bean类使用不同的容器类。容器厂商可以使用其它的实现策略,如一个容器类实现多个home接口,甚至一个标准的容器类创建独立的home object实现。唯一的必要条件是容器厂商必须使客户端能通过JNDI访问home object. 客户端和bean开发者都不需关心容器和home object的实现细节。Enterprise JavaBeanEnterprise bean是开发者编写的提供应用程序功能的类。开发者可以选择创建会话bean或实体bean,通过实现不同的接口声明其部署描述符来加以区分。

对于会话bean:
public class myBean implements javax.ejb.SessionBean …
对于实体bean:
public class myBean implements javax.ejb.EntityBean …

  客户端不会直接访问enterprise bean中的任何方法。客户端通过EJBObject 间接调用bean中的方法,EJBObject就象一个代理一样。在把调用通过EJBObject传递时,容器开发商通过包装编码插入其自己的功能,这称为方法插入。方法插入的一个例子是为每个方法调用创建一个新的事务上下文,当方法返回到EJBObject时提交或回滚事务。当容器厂商的工具在安装bean产生stub和skeleton时,它产生bean的EJBObject一个stub和skeleton.实际上它并不创建bean本身的stub和skeleton,因为bean不会通过网络被访问。EJBObject是真正的网络对象。Bean 是包含应用相关的商业编码的代表。容器也可以调用bean中的某个方法。例如,容器保证当一个bean 实例生成后,homeobject中的create()的任何参数会传递bean相应的ejbCreate()方法。 Enterprisebean还有其它的接口和要求。然而,会话bean和实体bean的要求是不同的。这些在随后详述会话和实体bean的章节中会cover.Remote Interface编写完enterprise bean后开发者创建了一个客户端可访问创建方法的home interface,在home interface中每一个create()方法在相应的bean中都必须有一个ejbcreate()方法。同样,开发者必须创建描述客户端能够访问的商业方法的remoteinterface。因为所有的客户端调用都通过EJBObject,因此实现这个接口的是EJBObject而不是homeobject. Remote interface中列出的方法名和signature必须和实现bean的方法名和signature相同。这不同于home interface--方法signature是一样的,而名字却不同。

  以下是一个remote interface的例子:
public interface Account extends javax.ejb.EJBObject {
public void deposit(double amount) throws RemoteException;
public void withdraw(double amount) throws RemoteException;
public double balance() throws RemoteException;
}
  所有声明的方法都必须抛出一个RemoteException例外,因为规范要求客户端stub是RMI兼容的。但这并不意味着排除了用其它的传输方式的stub/skeleton实现,如CORBA/IIOP.Remote interface继承javax.ejb.EJBObject接口,增加了额外的方法要求。EJBObjectEJBObject是网络上可视的对象,包含stub和skeleton,作为bean的代理。Bean的remoteinterface继承了EJBObject接口,而EJBObject类实现这个remote interface,使得bean类有自己的EJBObject类。对每个bean类有一个定制的EJBObject类。

  如下是EJBObject接口的定义,被bean的remote interface继承:
public interface javax.ejb.EJBObject extends java.rmi.Remote {
public EJBHome getEJBHome() throws RemoteException;

共19页  第1页 第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页 第18页 第19页


 
 
标签: JavaBeans , ERP , NT , BEA , Java 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站