`

Superclass has no null constructors but no arguments were given

阅读更多
org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.lj.cms.service.IndexService]: 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




 <aop:config>
		<aop:aspect ref="indexService">   
		<aop:pointcut id="generateTopPoint"
			expression="execution(* com.lj.cms.service.ChannelService.add*(..))||
						execution(* com.lj.cms.service.ChannelService.delete*(..))||
						execution(* com.lj.cms.service.ChannelService.update*(..))"/>
		<aop:after method="generateTop" pointcut-ref="generateTopPoint"/>
	</aop:aspect>
	</aop:config> 


<bean id="ftlPath" class="java.lang.String">
		<constructor-arg value="/ftl"></constructor-arg>
	</bean>

	<bean id="outPath" class="java.lang.String">
		<constructor-arg value="/jsp/template"></constructor-arg>
	</bean>



	@Autowired(required=true)
	public IndexService(String ftlPath,String outPath)
	{
		
		if(util==null){ 
		this.outPath = outPath;
		util=FreemarkerUtil.getInstance(ftlPath);//ftlPath在beans.xml中配置了依赖注入,值为/ftl
		}
	}



上述代码原本运行时是没有错误的。
后来因为需求把 <aop:config> 的内容去掉了。
结果就一直报如上错误。



弄了半天, 最后在stackoverflow上找到原因:
http://stackoverflow.com/questions/13711347/spring-constructor-dependency-injection-issues

Classes to be proxied by CGLIB (for AOP support) must have no-args constructors.

These no-args constructors don't have to be public and it doesn't affect anything else - you can use other constructors as usually:



因此只要加入
public IndexService()
{
}


问题就解决了。
分享到:
评论

相关推荐

    Instance of Subclass, Subclass, Instance of Superclass, Superclass,

    在编程领域,尤其是在面向对象编程(OOP)中,"Instance of Subclass" 和 "Instance of Superclass" 是两个核心概念,它们与继承、多态等特性紧密相关。"Subclass"(子类)和 "Superclass"(超类或父类)是描述类...

    Test_invoke_super.rar_Superclass

    在编程领域,尤其是在面向对象的编程中,"superclass"(超类)是一个核心概念。超类是继承机制的一部分,它定义了一组方法和属性,这些可以被子类继承和扩展。当我们谈论`Test_invoke_super.rar_Superclass`时,这...

    Test_invoke_super_range.rar_Superclass

    "Test_invoke_super_range.rar_Superclass"的标题暗示了我们讨论的是一个关于调用超类方法的主题,特别是与范围(range)有关的。这可能指的是在继承链中的不同层次上调用超类的方法。描述中提到的“invoke method ...

    SearchRecentSuggestionsProvider.rar_Superclass

    This superclass can be used to create a simple search suggestions provider for your application Source Code for Linux.

    Google C++ Style Guide(Google C++编程规范)高清PDF

    Classes Doing Work in Constructors Default Constructors Explicit Constructors Copy Constructors Structs vs. Classes Inheritance Multiple Inheritance Interfaces Operator Overloading Access Control ...

    android @override 报错解决方案

    现象: … java: 1801: method does not override a method from its superclass @Override… 原因: Eclipse is defaulting to Java... but in Java 1.5 can only be applied to methods overriding a superclass meth

    SuperClass-开源

    SuperClass是JavaScript预处理器/解释器对象,旨在促进JavaScript中基于类的OOP。 注意:项目已关闭。 替换为:http://sourceforge.net/projects/jsclass

    noa:制作很棒的 Javascript

    Noa 是一个快速、小巧、精心编写的 javascript MVC 框架。 它有3个主要目标。 成为您需要的一切。 解决大型和小型应用程序存在的常见问题和陷阱。 要容易写。文档楷模活动应用程序 诺亚Noa 有0 个依赖项。 支持 IE &gt;...

    AboutProperty:简单获取对象属性列表,键值对,superclass列表

    "AboutProperty"项目提供了一种简洁的方法来获取对象的属性列表、键值对以及类的继承层次结构(superclass列表)。这个工具对于理解和调试代码,特别是在处理复杂类继承结构时,能够提供极大的便利。 首先,让我们...

    iOS NSObject对象的本质、内存分配、ISA指针及superclass底层源码分析.pdf

    iOS NSObject对象的本质、内存分配、ISA指针及superclass底层源码分析 iOS NSObject对象是iOS开发中最基本也是最重要的对象之一,我们在使用它时往往只是停留在会用的阶段,却没有深入了解过它的本质。今天我们就来...

    JSP Simple Examples

    The compiler provides us with a default constructor to the class having no arguments. Abstract classes We does not make a object of the abstract class. This class must be inherited. Unlike ...

    The method of type must override a superclass method解决方式, myeclipse, java, web

    在Java编程语言中,"The method of type must override a superclass method" 是一个常见的错误提示,它通常出现在子类试图重写父类方法时,但没有按照正确的格式进行。这个错误通常与多态性和继承概念有关,是理解...

    vc超类化实例代码superclass_注释相当全 关于超类化的一切问题这里都有答案_产生多个超类的实例.rar

    本压缩包中的"superclass_注释相当全 关于超类化的一切问题这里都有答案_产生多个超类的实例.rar"包含了一个详细的超类化实例,将帮助你深入理解这一概念。 首先,超类化的基本思想是重用和扩展。当你创建一个新的...

    类继承构造方法super()调用可以吃吗

    System.out.println("in SuperClass.doSomething()"); } } class SubClass extends SuperClass { int x; SubClass() { super(); // 调用父类的构造方法 x = 5; // super()必须是子类构造器的第一条语句 ...

    用反射的方式获取父类中的所有属性和方法

    = null) { traverseSuperClasses(superClass); } // 在这里处理当前类的属性和方法 } ``` 在实际开发中,反射虽然强大,但也需谨慎使用,因为它可能导致安全问题,降低性能,并且使得代码难以理解和维护。在...

    利用反射实现对象转json格式字符串

    = null && superClass != Object.class) { jsonMap.putAll(objectToJson(superClass)); } return jsonMap.toString(); } private static void makeAccessible(Field field) { if (!field.isAccessible()) { ...

    基于注解反射封装的BaseDao(支持一对多查询)

    throw new IllegalArgumentException("No @ManyToOne annotation found for field: " + associationField); } } private Field getAssociationField(Class&lt;?&gt; clazz, String fieldName) { try { return clazz...

    java反射入门

    = null) { String className = superclass.getName(); System.out.println(className); subclass = superclass; superclass = subclass.getSuperclass(); } ``` 该循环会打印出类的整个继承链。 5. 检索实现...

Global site tag (gtag.js) - Google Analytics