我无法摆脱错误:
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 如果有人可以在这里总结并写下答案,我很乐意接受!
答案 0 :(得分:7)
为了让某些框架以这种方式初始化对象,你必须提供一个 default constructor (一个不带参数的构造函数),即使它没有'做任何事情。
这是因为你可能在那里有另一个构造函数至少需要一个参数。从逻辑上讲,库不知道传递给传递给它的每个任意类的参数。
错误表示java.lang.NoSuchMethodException: [Lmain.java.com.springapp.mvc.model.DSLR;.<init>()
:
NoSuchMethodException
表示找不到运行时期望的方法(通过反射).<init>()
指的是构造函数(构造函数技术上没有名称,因为它们总是只是类本身的名称;因此,JVM将它们称为{ {1}})。答案 1 :(得分:5)
由于您与我们分享的DSLR
课程无法发生错误,我的猜测是您的服务器可能包含旧课程。
我建议在IDE中清理项目以及Tomcat安装。