无法实例化bean类:BeanInstantiationException

时间:2014-05-15 16:34:44

标签: java spring

我无法摆脱错误:

  HTTP Status 500 - Request processing failed; nested exception is 
org.springframework.beans.BeanInstantiationException: 
Could not instantiate bean class [[Lmain.java.com.springapp.mvc.model.DSLR;]: 
No default constructor found; 
nested exception is java.lang.NoSuchMethodException: [Lmain.java.com.springapp.mvc.model.DSLR;.<init>()

我实际上在DSLR类中有构造函数。我的代码出了什么问题?


此处代码&gt; Spring MVC WebApp:http://goo.gl/ddhLg5


可能导致错误的DSLR类:

package main.java.com.springapp.mvc.model;

import org.springframework.beans.factory.annotation.Autowired;

    public class DSLR {


    public DSLR() {
    }


    private int dslrId;
    private String model;
    private int price;
    private String description;

    public int getDslrId() {
        return dslrId;
    }

    public void setDslrId(int dslrId) {
        this.dslrId = dslrId;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Override
    public String toString() {
        return "DSLR [dslr=" + dslrId + ", model=" + model
                + ", price=" + price+ ", description=" + description+"]";
    }
}

在实例化DSLR的DSLRServletController中,我进行了更改:

@ModelAttribute(“dslrs”)DSLR dslrs []

更改为:

@ModelAttribute(“dslrs”)列出dslrs

摆脱了之前的错误并给出了:

org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.List]: Specified class is an interface


已解决Spring MVC web application: No default constructor found 如果有人可以在这里总结并写下答案,我很乐意接受!

2 个答案:

答案 0 :(得分:7)

为了让某些框架以这种方式初始化对象,你必须提供一个 default constructor (一个不带参数的构造函数),即使它没有'做任何事情

这是因为你可能在那里有另一个构造函数至少需要一个参数。从逻辑上讲,库不知道传递给传递给它的每个任意类的参数。

错误表示java.lang.NoSuchMethodException: [Lmain.java.com.springapp.mvc.model.DSLR;.<init>()

  • NoSuchMethodException表示找不到运行时期望的方法(通过反射)
  • .<init>()指的是构造函数(构造函数技术上没有名称,因为它们总是只是类本身的名称;因此,JVM将它们称为{ {1}})。

答案 1 :(得分:5)

由于您与我们分享的DSLR课程无法发生错误,我的猜测是您的服务器可能包含旧课程。

我建议在IDE中清理项目以及Tomcat安装。

  • Eclipse :项目 - &gt;干净......
  • Tomcat :在“服务器”视图中右键单击服务器 - &gt;干净......