本人新手,在学struts2,在提交表单后总是抛出java.lang.InstantiationException异常。
jsp页面如下:<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<s:form action="upload" enctype="multipart/form-data" theme="simple">
<table border="1" align="center">
<tr>
<td>
username:
</td>
<td>
<s:textfield name="username"></s:textfield>
</td>
</tr>
<tr>
<td>
passwors:
</td>
<td>
<s:password name="password"></s:password>
</td>
</tr>
<tr>
<td>
file:
</td>
<td>
<s:file name="file"></s:file>
</td>
</tr>
<tr>
<td>
<s:submit value="submit"></s:submit>
</td>
<td>
<s:reset value="reset"></s:reset>
</td>
</tr>
</table>
</s:form>
</body>
</html>
action代码如下:
package com.test.action;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public abstract class UploadAction extends ActionSupport {
private String username;
private String password;
private File file;
private String fileFileName;
private String fileContentType;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
public String execute()throws Exception
{
InputStream is = new FileInputStream(file);
String root = ServletActionContext.getRequest().getRealPath("/upload");

File destfile = new File(root,this.getFileFileName());
OutputStream os = new FileOutputStream(destfile);
byte[] buffer = new byte[400];
int length = 0;
while((length=is.read(buffer))>0)
{
os.write(buffer,0,length);
}
is.close();
os.close();
return SUCCESS;
}}struts.xml如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>


<package name="struts2" extends="struts-default">
<action name="upload" class="com.test.action.UploadAction">
<result name="success">/uploadresult.jsp</result>
</action> </package></struts>

解决方案 »

  1.   

    你是做的上传吧 
    这个异常的意思
    当应用试图使用 Class 类中的 newInstance 方法创建一个类的实例,而指定的类对象是一个接口或是抽象类而不能实现时,就抛该异常。 具体的异常信息贴出来看看 
    具体是哪一行抛出的
      

  2.   

    加个断点跟踪看看 是具体哪一行出现的异常 实现Action的那个类只提供了一个有参数的构造方法而没有提供一个无参的构造方法,在Eclipse内部使用反射的时候因找不到无参的构造方法然后就抛出来了这个异常