實現SessionSynchronization接口 SessionSynchronization接口可以令一個session bean更好地控制一個事務是如何發生。
在必要時擴展其它類
![]()
你的實現類也可以是其它類的子類。實際上,該超類也可以是另一類bean的實現類。
在必要時實現Helper方法 一個實現類可能還有額外的helper方法,這些方法并不是Remote或者Home接口的一部分。對于這些方法的參數類型、返回值類型和可見性(public, protected, private)是沒有限制的。
不要拋出RemoteException 假如需要拋出一個和EJB有關的異常,拋出javax.ejb.EJBException代替。
Remote和Home接口的限制 除了對實現類有限制外,對于Remote和Home接口也有一些限制。這些限制大部分和實現類類似。
Remote接口必須擴展javax.ejb.EJBObject 當你使用一些配置工具時,例如WebLogic提供的工具,你將會發現它會自動知道哪個類包含有Remote接口。它尋找EJBObject接口來檢測到Remote接口。還有EJBObject接口包含有每個EJB都必須實現的一些方法。
Home接口必須擴展javax.ejb.EJBHome 和Remote接口必須擴展EJBObject一樣,EJBHome接口幫助標識Home接口,并且定義了一些你可以在每個Home接口上調用的方法。
參數和返回類型必須符合RMI/IIOP 這意味著它們必須是原始類型、可串行化對象或者Remote接口。
所有的方法必須拋出java.rmi.RemoteException 由于Home和Remote接口擴展java.rmi.Remote接口,所以接口的全部方法都必須拋出java.rmi.RemoteException。RMI規范明確規定在Remote接口的所有方法都必須拋出RemoteException。
所有的方法都必須有相應的實現 在一個典型的RMI實現中,這一點是毫無疑問的,這是由于實現類將會實現Remote接口。但是對于EJB,由于實現類并不需要實現Home和Remote接口,對于實現類和Home及Remote接口的關系,編譯器并沒有一個強制的規定。
對于Home接口的每個create方法,在實現類中都必須有一個相應的ejbCreate方法。還有,create方法拋出CreateException。
擴展其它的接口 要支持Enterprise JavaBeans的子類,Home和Remote接口可以擴展其它的接口,只要父接口是擴展EJBObject(對于Remote接口)或者EJBHome(對于Home接口)。進入討論組討論。