struts2 上传时报错,求教原因?

hollin1987 2012-02-29 03:00:54

java.lang.NullPointerException
java.io.File.<init>(File.java:262)
com.yiyi.action.UploadAction.upload(UploadAction.java:32)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:314)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.


...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZZZ5512536 2012-02-29
  • 打赏
  • 举报
回复

private File picture;
@SuppressWarnings("unused")
private String pictureContentType;
private String pictureFileName;

这些有get/set方法没?
hollin1988 2012-02-29
  • 打赏
  • 举报
回复
请教高手啊。最好说明错误的原因。需要什么文件都可以贴
hollin1987 2012-02-29
  • 打赏
  • 举报
回复
struts的配置
<package name="test" namespace="/test" extends="struts-default">
<action name="upload" class="com.yiyi.action.UploadAction" method="upload">
<result name="list">/upload_list.jsp</result>
<result name="input">/upload.jsp</result>
</action>
</package>


upload.jsp

<s:form action="test/upload" enctype="multipart/form-data" method="post">
<s:label value="上传测试"></s:label>
<s:file name="picture" label="文件:"></s:file>
<s:submit value="上传" method="upload"></s:submit>
</s:form>
hollin1987 2012-02-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yewuqing007 的回复:]

空指针错误啊
[/Quote]

请问是什么原因了,我上传了文件啊,在页面提交就出现500错误
hollin1987 2012-02-29
  • 打赏
  • 举报
回复
我的uploadaction类

package com.yiyi.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport{

/**
*
*/
private static final long serialVersionUID = -8936956951350346958L;

private File picture;
@SuppressWarnings("unused")
private String pictureContentType;
private String pictureFileName;

public String execute(){
return "input";
}

public String upload() throws Exception{

File saved = new File(ServletActionContext.getServletContext().getRealPath("upload"),pictureFileName);
InputStream ins = null;
OutputStream ous = null;
try {
saved.getParentFile().mkdirs();//确保文件夹upload存在
ins = new FileInputStream(picture);
ous = new FileOutputStream(saved);
byte[] b = new byte[1024]; // 字节缓存
int len = 0 ;
while((len = ins.read(b))!= -1){ //循环读入,直至结束
ous.write(b,0,len);
}


} catch (Exception e) {
e.printStackTrace();
} finally {
if(ins != null ){
try {
ins.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(ous != null){
try {
ous.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

return "list";

}

}

devin_jia 2012-02-29
  • 打赏
  • 举报
回复
空指针错误啊

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧