浏览 4490 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-25
参照了appf.项目中我把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方法 } 程序中引用.其中如UserInfoManager Interface继承GenericManager<UserInfo, Integer> UserInfoManagerImpl实现 [java] public class UserManagerImpl extends GenericManagerImpl<UserInformation,Integer> implements UserManager { UserDao userDao public UserManagerImpl(UserDAO userDao) { super(userDao); this.userDao=userDao; } [/java] } 但是现在项目启动的时候抛出一个如下的错误 ,被困扰了一天了.特来论坛发个贴求助.指点一下.非常感谢: 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) at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:499) at net.sf.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33) at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216) at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377) at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285) at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:196) at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110) at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:429) at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:299) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1181) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:428) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:287) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-08-25
给GenericManagerImpl声明一个无参数constructor
|
|
返回顶楼 | |
发表时间:2007-08-26
你这个似乎是通过构造方法注入的吗?
|
|
返回顶楼 | |
发表时间:2007-08-29
问题解决了.是Spring AOP的问题.主要是出现在事务这块,由于我用的是Spring2.0 AOP 来声明事务.在声明事务的时候我把taget-prent-class="true" 了,但事实上不能为true.去掉这个就OK了因为要针对接口代理.
|
|
返回顶楼 | |
发表时间:2007-12-17
请问你 UserDAO 有继承 基于 泛型的 “基类(接口)”么?
另外能否把 你那个 service的 spring 配置 文件贴一下 谢谢 |
|
返回顶楼 | |