高级Meb技术 J阳a2 Enterprise Edtion
高级Web技术 Java 2 Enterprise Edtion
本次课程内容 Remote接口设计原则 Home接口设计原则 Enterprise Bean类设计原则 Primary Key类设计原则
本次课程内容 ◼ Remote接口设计原则 ◼ Home接口设计原则 ◼ Enterprise Bean类设计原则 ◼ Primary Key类设计原则
Remote接口设计
Remote接口设计
设计 Remote Interface ■ Remote接口定义了 enterprise bean提供的商业方法, 编写 remote接口时应遵循一定的原则
设计Remote Interface ◼ Remote接口定义了enterprise bean提供的商业方法, 编写remote接口时应遵循一定的原则
继承约束 javax. ejb Package EJBObject Interface Remote interface Remote接口必须继承 EJBObject接口 EJBobject接口位于 javax. ejb包 其中包含用于管理实现 remote接口的EJB对象的方法 n这些方法是每一个EJB对象都需要的 n相当于cOM、 CORBA中 Unknow或 object接口的作用
继承约束 ◼ Remote接口必须继承EJBObject接口 ◼ EJBObject接口位于javax.ejb包 ◼ 其中包含用于管理实现remote接口的EJB对象的方法 ◼ 这些方法是每一个EJB对象都需要的 ◼ 相当于COM、CORBA中IUnknown或Object接口的作用
方法对应规则 // Remote接口定义 / enterprise bean类定义 public interface Hello extends EJBObject public class Demo Bean extends Session Bean String busMethod1(long I, String str) public String busMethod1(long I, String str) throws RemoteException, UserExcep1 throws UserExcep2 { //具体实现 8R30R Remote接口中定义的每一个方法都必须在相应的 enterprise bean类中有一个对应方法 函数接口与返回值必须相同 抛出相同的异常必须匹配(用户自定义异常)
//Remote接口定义 public interface Hello extends EJBObject { String busMethod1(long l, String str) throws RemoteException, UserExcep1; } //enterprise bean类定义 public class DemoBean extends SessionBean { public String busMethod1(long l, String str) throws UserExcep1 { //具体实现 } //... } 方法对应规则 ◼ Remote接口中定义的每一个方法都必须在相应的enterprise bean类中有一个对应方法 //Remote接口定义 public interface Hello extends EJBObject { String busMethod1(long l, String str) throws RemoteException, UserExcep1; } //enterprise bean类定义 public class DemoBean extends SessionBean { public String busMethod1(long l, String str) throws UserExcep1 { //具体实现 } //... } //Remote接口定义 public interface Hello extends EJBObject { String busMethod1(long l, String str) throws RemoteException, UserExcep1; } //enterprise bean类定义 public class DemoBean extends SessionBean { public String busMethod1(long l, String str) throws UserExcep1 { //具体实现 } //... } ◼ 函数接口与返回值必须相同 ◼ 抛出相同的异常必须匹配(用户自定义异常) //Remote接口定义 public interface Hello extends EJBObject { String busMethod1(long l, String str) throws RemoteException, UserExcep1; } //enterprise bean类定义 public class DemoBean extends SessionBean { public String busMethod1(long l, String str) { //具体实现 } //... } OK //Remote接口定义 public interface Hello extends EJBObject { String busMethod1(long l, String str) throws RemoteException; } //enterprise bean类定义 public class DemoBean extends SessionBean { public String busMethod1(long l, String str) throws UserExcep1 { //具体实现 } //... } ERROR //Remote接口定义 public interface Hello extends EJBObject { String busMethod1(long l, String str) throws RemoteException, UserExcep1; } //enterprise bean类定义 public class DemoBean extends SessionBean { public String busMethod1(long l, String str) throws UserExcep2 { //具体实现 } //... } ERROR
方法对应规则 此规则的保证 n在程序设计语言的层次上没有提供机制来保证这一点, 也就是说在定义 enterprise bean类时,并不声明该类实 现 remote接口。 即使不符合这条规则,程序员定义的 enterprise bean类、 home接口以及 remote接口都可以单独编译通过(用 javac)。 但是将 enterprise bean类、home接口以及 remote接口 打包成 enterprise bean时会进行相应的检查 这条规则保证了客户应用不能直接访问商业方法的实现
方法对应规则 ◼ 此规则的保证 ◼ 在程序设计语言的层次上没有提供机制来保证这一点, 也就是说在定义enterprise bean类时,并不声明该类实 现remote接口。 ◼ 即使不符合这条规则,程序员定义的enterprise bean类、 home接口以及remote接口都可以单独编译通过(用 javac)。 ◼ 但是将enterprise bean类、home接口以及remote接口 打包成enterprise bean时会进行相应的检查。 ◼ 这条规则保证了客户应用不能直接访问商业方法的实现
RM约東 Rules of Java RII Remote Interface ■ Remote接口中定义的方法应该遵循 Java rm的约束 因为EJB对象是分布式对象,所以必须是远程可访问的,为 了支持远程访问,所以定义 Remote接口时必须遵循Java RM标准 Remote接口中的方法必须抛出 Remote Exception异常,该异常报 告网络通信错误 方法定义中的参数必须是合法的 Java rM类型的参数,因为只有合 法的 Java rm类型的参数才可以在网络中传递,如可串行化对象
RMI约束 ◼ Remote接口中定义的方法应该遵循Java RMI的约束 ◼ 因为EJB对象是分布式对象,所以必须是远程可访问的,为 了支持远程访问,所以定义Remote接口时必须遵循Java RMI标准 ◼ Remote接口中的方法必须抛出RemoteException异常,该异常报 告网络通信错误 ◼ 方法定义中的参数必须是合法的Java RMI类型的参数,因为只有合 法的Java RMI类型的参数才可以在网络中传递,如可串行化对象
Remote接口设计原则 规则 原因 所有的 remote接口 该接口定义了所有 enterprise bean必须 应该继承 EJBObjec接口 支持的服务 Remote接口中定义的每一个方法都必 须在相应的 enterprise bean类中有一个 客户应用不能直接访问 对应方法 商业方法的实现 Remote接口中定义的方法 应该遵循 Java ri的规则 Remote接囗中定义的方法 应该抛出 RemoteException异常 EJB对象是分布式Java对象 Remote接口中定义的方法的参数 应该是合法的 Java rm类型的参数
Remote接口设计原则 规则 原因 所有的remote接口 应该继承EJBObject接口 该接口定义了所有enterprise bean必须 支持的服务 Remote接口中定义的每一个方法都必 须在相应的enterprise bean类中有一个 对应方法 客户应用不能直接访问 商业方法的实现 Remote接口中定义的方法 应该遵循Java RMI的规则 EJB对象是分布式Java对象 Remote接口中定义的方法 应该抛出RemoteException异常 Remote接口中定义的方法的参数 应该是合法的Java RMI类型的参数
Home接口设计
Home接口设计