項目中我把Service這層的類改了一下.定義了兩個Service的父類.一個是:
- public interface GenericManager<T, PK extends Serializable> {
-
- public List<T> getAll();
-
- public T get(PK id);
-
- .......基本的CRUD方法
-
- }
- public class GenericManagerImpl<T, PK extends Serializable> implements GenericManager<T, PK> {
-
- protected BaseGenericHibernateDAO<T, PK> baseGenericHibernateDAO;
-
- public GenericManagerImpl(BaseGenericHibernateDAO<T, PK> baseGenericHibernateDAO) {
- this.baseGenericHibernateDAO = baseGenericHibernateDAO;
- }
-
- 對應實現上面的接口CRUD方法
-
- }
但是現在項目啟動的時候拋出一個如下的錯誤:
Caused by: org.springframework.aop.framework.AopConfigException: Couldn't generate CGLIB subclass of class [class com.xxxx.user.service.impl.UserManagerImpl]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
Caused by: java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
at net.sf.cglib.proxy.Enhancer.emitConstructors(Enhancer.java:718)
是Spring AOP的問題.主要是出現在事務這塊,由于我用的是Spring2.0 AOP 來聲明事務.在聲明事務的時候我把taget-prent-class="true" 了,但事實上不能為true.去掉這個就OK了因為要針對接口代理.
posted on 2007-12-23 20:26
周銳 閱讀(926)
評論(0) 編輯 收藏 所屬分類:
Apache 、
Spring