如何實現EJB的抽象、繼承(有專案經驗者請進)
小弟正在做一個J2EE專案,遇到這樣的問題:
有幾個表,結構差不多,操作也差不多,如果是不用EJB,直接就可以抽象出一個父類,然後其他類繼承就可以了。
在EJB 模組中,我採用SessionBean facade模式,我做了兩個抽象類:
一個是EB的抽象類,一個是SB的抽象類。釋出成功。
程式碼示例:
User為實體bean Student 和 Teacher的抽象類,是一個簡單的類,包括了一些get,set的定義,Student和Teacher的Local介面中相應進行修改:
public interface Student extends EJBLocalObject,User
public interface Teacher extends EJBLocalObject,User
同時,我修改Student和Teacher bean Home介面中的各方法的返回值型別,統一為User
public User create(String sysid) throws CreateException;
public User findByPrimary(String id);
==========================
session bean :StudentController中的方法:
==========================
public User getUserById(String _sId) throws
FinderException {
Context cxt = new InitialContext("Student");
Object o = cxt.lookup("Student");
StudentHome stuHome = (StudentHome) o ;
return stuHome.findByPrimary(_sId);
}
=====================
但是事情沒有我想的那麼簡單,在jsp中呼叫session bean的時候,出現了
java.rmi.ServerException: RuntimeException; nested exception is:
java.lang.ClassCastException
的錯誤。
==========================
由於第一次做這樣的專案,而且在別的地方沒有看到過這樣的用法,我不知我的想法是否可行。如果可行,是什麼地方出了問題。還請大家指點
!
有幾個表,結構差不多,操作也差不多,如果是不用EJB,直接就可以抽象出一個父類,然後其他類繼承就可以了。
在EJB 模組中,我採用SessionBean facade模式,我做了兩個抽象類:
一個是EB的抽象類,一個是SB的抽象類。釋出成功。
程式碼示例:
User為實體bean Student 和 Teacher的抽象類,是一個簡單的類,包括了一些get,set的定義,Student和Teacher的Local介面中相應進行修改:
public interface Student extends EJBLocalObject,User
public interface Teacher extends EJBLocalObject,User
同時,我修改Student和Teacher bean Home介面中的各方法的返回值型別,統一為User
public User create(String sysid) throws CreateException;
public User findByPrimary(String id);
==========================
session bean :StudentController中的方法:
==========================
public User getUserById(String _sId) throws
FinderException {
Context cxt = new InitialContext("Student");
Object o = cxt.lookup("Student");
StudentHome stuHome = (StudentHome) o ;
return stuHome.findByPrimary(_sId);
}
=====================
但是事情沒有我想的那麼簡單,在jsp中呼叫session bean的時候,出現了
java.rmi.ServerException: RuntimeException; nested exception is:
java.lang.ClassCastException
的錯誤。
==========================
由於第一次做這樣的專案,而且在別的地方沒有看到過這樣的用法,我不知我的想法是否可行。如果可行,是什麼地方出了問題。還請大家指點
!
相關文章
- 如何擁有專案經驗
- Javascript如何實現繼承JavaScript繼承
- PHP 抽象類繼承抽象類時的注意點PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- js--如何實現繼承?JS繼承
- 【Java】繼承、抽象、組合Java繼承抽象
- 繼承、抽象個人小結繼承抽象
- java抽象繼承-模板方法Java抽象繼承
- 繼承+多型+抽象類繼承多型抽象
- C#如何實現多重繼承C#繼承
- Java抽象類、繼承及多型和介面卡的實現Java抽象繼承多型
- PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- Java集合為什麼設計為:實現類繼承了抽象類,同時實現抽象類實現的介面Java繼承抽象
- 有php轉go專案經驗者優先?PHPGo
- 繼承的實現方式繼承
- js的繼承實現JS繼承
- 介面是否可繼承(extends)介面? 抽象類是否可實現 (implements)介面? 抽象類是否可繼承具體類(concrete class)?繼承抽象
- Javascript繼承4:潔淨的繼承者—-原型式繼承JavaScript繼承原型
- c# abstract抽象類及抽象方法_繼承C#抽象繼承
- 如何用es5實現繼承繼承
- 手把手教你如何實現繼承繼承
- prototype實現繼承繼承
- 實現JavaScript繼承JavaScript繼承
- Java之繼承和抽象類Java繼承抽象
- JAVA介面繼承、抽象類等Java繼承抽象
- 繼承 重寫和抽象類繼承抽象
- 【JAVA】筆記(5)--- final;抽象方法;抽象類;介面;解析繼承,關聯,與實現;Java筆記抽象繼承
- JS中繼承的實現JS中繼繼承
- JavaScript實現繼承的方式JavaScript繼承
- C語言如何實現繼承及容器C語言繼承
- js如何是利用apply實現繼承JSAPP繼承
- 請各位有多個專案開發經驗的人事指教
- 6-2 抽象類的繼承 (5分)抽象繼承
- Java 繼承與多型實驗Java繼承多型
- 領域實體有沒有繼承性?繼承
- C# OOP:繼承,介面和抽象類C#OOP繼承抽象
- 一次 outline 去除經驗(非繼承屬性,看著像繼承)繼承
- ES6實現繼承繼承
- 什麼是繼承?Python繼承的特徵有哪些?繼承Python特徵