EJB基础——接口设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法对应规则
//Remote接口定义 public interface Hello extends EJBObject { String busMethod1(long l, Stringstr) throws StringbusMethod1(long l, String str) throws busMethod1(long String str) throws RemoteException; UserExcep1; RemoteException, UserExcep1; } //enterprise bean类定义 public class DemoBean extends SessionBean { public StringbusMethod1(long l, Stringstr) String busMethod1(long l, String str) busMethod1(long String str) UserExcep1 throws UserExcep1 throws UserExcep1 { UserExcep2 { { //具体实现 //具体实现 } //具体实现 } //... } //... } //... } }
ERROR OK
Remote接口中定义的每一个方法都必须在相应的 enterprise bean类中有一个对应方法
函数接口与返回值必须相同 抛出相同的异常必须匹配(用户自定义异常)
西安电子科技大学软件学院
方法对应规则
此规则的保证
在程序设计语言的层次上没有提供机制来保证这一点,也就是说 在定义enterprise bean类时,并不声明该类实现remote接口。 即使不符合这条规则,程序员定义的enterprise bean类、 home接 口以及remote接口都可以单独编译通过(用javac)。 但是将enterprise bean enterprise bean类、home接口以及remote接口打包成 home remote enterprise bean时会进行相应的检查。
客户程序调用create方法时,EJB容器调用相应的 ejbCreate方法完成enterprise bean的初始化。西Biblioteka 电子科技大学软件学院RMI约束
Home接口中定义的方法应该遵循Java RMI的约束
因为EJB home是分布式对象,所以必须是远程可访问的,为了支持远程 访问,所以定义Home接口时必须遵循Java RMI标准
原因
该接口定义了所有enterprise bean 该接口定义了所有 必须支持的服务 客户应用不能直接访问 商业方法的实现
西安电子科技大学软件学院
Home接口设计
西安电子科技大学软件学院
设计Home Interface
Enterprise bean的Home接口支持客户应用创建、 删除或定位enterprise bean的实例,编写home接 口时应遵循一定的原则
ERROR OK
Home接口中定义的每一个create方法都必须在相应的 enterprise bean类中有一个对应的ejbCreate方法
函数接口必须相同 返回值要符合相应的匹配规则 抛出的异常应该匹配(用户自定义异常)
西安电子科技大学软件学院
方法对应规则
此规则的保证
在程序设计语言的层次上没有提供机制来保证这一点。 即使不符合这条规则,程序员定义的enterprise bean类、 home接 口以及remote接口都可以单独编译通过(用javac)。 但是将enterprise bean类、home接口以及remote接口打包成 enterprise bean bean时会进行相应的检查。
西安电子科技大学软件学院
Remote接口设计原则
规则
所有的remote接口 接口 所有的 应该继承EJBObject接口 应该继承 接口 Remote接口中定义的每一个方法都 接口中定义的每一个方法都 必须在相应的enterprise bean类中 必须在相应的 类中 有一个对应方法 Remote接口中定义的方法 接口中定义的方法 应该遵循Java RMI的规则 应该遵循 的规则 Remote接口中定义的方法 接口中定义的方法 应该抛出RemoteException异常 应该抛出 异常 Remote接口中定义的方法的参数 接口中定义的方法的参数 应该是合法的Java RMI类型的参数 应该是合法的 类型的参数 EJB对象是分布式 对象是分布式Java对象 对象是分布式 对象
Home接口中的方法必须抛出RemoteException异常,该异常报告网络通信错 误;create方法还必须抛出CreateException异常,该异常报告初始化错误 方法定义中的参数必须是合法的Java RMI类型的参数,因为只有合法的Java RMI类型的参数才可以在网络中传递,如可串行化对象
原因
EJBHome中定义了基本的服务 中定义了基本的服务 客户应用不能直接访问enterprise 客户应用不能直接访问 bean的初始化方法 的初始化方法
西安电子科技大学软件学院
西安电子科技大学软件学院
继承约束
Home接口必须继承EJBHome接口
EJBHome接口位于javax.ejb包 包含了enterprise bean生命周期管理的方法 EJB home类似于CORBA或COM中的工厂概念
西安电子科技大学软件学院
方法对应规则
//Home接口定义 public interface DemoHome extends EJBHome { public Democreate(longx) throws Demo create(long x) throws create(long x) throws RemoteException, CreateException, UserExcp2 CreateException UserExcp2 } //enterprise bean类定义 public class DemoBean extends SessionBean { public voidejbCreate(long x) throws void ejbCreate(long x) throws ejbCreate(long UserExcp2 CreateException, UserExcp2 UserExcp2 { //具体实现 } //... }
西安电子科技大学软件学院
继承约束
Remote接口必须继承EJBObject接口
EJBObject接口位于javax.ejb包 其中包含用于管理实现remote接口的EJB对象的方法
这些方法是每一个EJB对象都需要的
相当于COM、CORBA中IUnknown或Object接口的作用
西安电子科技大学软件学院
EJB接口设计
西安电子科技大学软件学院
Agenda
Remote接口设计 Home接口设计
西安电子科技大学软件学院
Remote接口设计
西安电子科技大学软件学院
设计Remote Interface
Remote接口定义了enterprise bean提供的商业方 法,编写remote接口时应遵循一定的原则
这条规则保证了客户应用不能直接访问商业方法 的实现。
西安电子科技大学软件学院
RMI约束
Remote接口中定义的方法应该遵循Java RMI的约束
因为EJB对象是分布式对象,所以必须是远程可访问的,为了支持远程访 问,所以定义Remote接口时必须遵循Java RMI标准
Remote接口中的方法必须抛出RemoteException异常,该异常报告网络通信 错误 方法定义中的参数必须是合法的Java RMI类型的参数,因为只有合法的Java RMI类型的参数才可以在网络中传递,如可串行化对象
西安电子科技大学软件学院
Home接口设计原则
规则
所有的home接口 接口 所有的 应该继承EJBHome接口 应该继承 接口 Home接口中定义的每一个 接口中定义的每一个create方法 接口中定义的每一个 方法 都必须在相应的enterprise bean类中 都必须在相应的 类中 有一个对应的ejbCreate方法 有一个对应的 方法 Home接口中定义的方法 接口中定义的方法 应该遵循Java RMI的规则 应该遵循 的规则 Home接口中定义的方法 接口中定义的方法 应该抛出RemoteException异常 应该抛出 异常 分布式Java对象 对象 分布式 Home接口中定义的 接口中定义的create方法 接口中定义的 方法 应该抛出CreateException异常 应该抛出 异常 Home接口中定义的方法的参数 接口中定义的方法的参数 应该是合法的Java RMI类型的参数 应该是合法的 类型的参数