当前位置:编程学习 > JAVA >>

关于struts上传,拦截器问题。

最近在写一个上传的程序。我觉得没有问题,我这里拦截器定义的上传大小不超过8M,然后我用以个超过8M的文件去试验,
一切都顺利。返回到INPUT页面。可是再点击其他功能。就报RUNTIME异常。不知道怎么回事。

郁闷啊
--------------------编程问答-------------------- 贴代码。贴异常。

问题说不定出在前面,后面才暴露的,这种情况太多见了。 --------------------编程问答-------------------- private File file;
private MailDAO mdao;
private String fileFileName;


// 关于上传
private String getSaveDir() {
return ServletActionContext.getServletContext().getRealPath("/uploads");
}

// 发送邮件
public String mailSend() {
ActionContext context = ActionContext.getContext();
Map session = context.getSession();
Employee sendEmp = (Employee) session.get("employee");
Employee receiveEmp = edao.getById(this.receive);
Date date = new Date(System.currentTimeMillis());

if (this.file != null) {
// 文件上传
File targetFile = new File(getSaveDir(),fileFileName);
file.renameTo(targetFile);
this.mail.setFilepath(fileFileName);

}
this.mail.setEmployeeByReceive(receiveEmp);
this.mail.setEmployeeBySend(sendEmp);
this.mail.setSendtime(date);
this.mail.setIsdelete(0);
this.mail.setIsread(0);
this.mdao.writeMail(this.mail);

return SUCCESS;
}


<!-- 发送邮件-->
<action name="mailSend" class="mailAction" method="mailSend">
<interceptor-ref name="fileUpload">
<param name="allowedTypes">
image/bmp,image/png,image/gif,image/jpg,application/zip,application/xml,application/vnd.ms-excel,video/x-ms-wmv,audio/x-wav,text/plain,
application/x-shockwave-flash,application/vnd.ms-powerpoint,application/pdf,video/mpeg,video/mp4,audio/mpeg,image/jpeg,
text/plain,application/java-archive,image/x-icon,text/html,image/gif,application/msword,image/bmp
</param>
<param name="maximumSize">8388608</param>
</interceptor-ref>
<interceptor-ref name="mystack"></interceptor-ref>

<result>/mailSendOK.jsp</result>
<result name="input">/mailWrite.jsp</result>
</action>

<tr>
<td align="right" width="30%">

上传文件:
</td>
<td align="left">
<s:file name="file" value="" />

</td>
<td align="left" width="45%">
<span>    文件大小不能超过8M</span>
</td>

</tr>




 Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [mailAction]
org.apache.struts2.convention.ConventionsServiceImpl.determineResultPath(ConventionsServiceImpl.java:100)
org.apache.struts2.convention.ConventionUnknownHandler.determinePath(ConventionUnknownHandler.java:385)
org.apache.struts2.convention.ConventionUnknownHandler.handleUnknownResult(ConventionUnknownHandler.java:274)
com.opensymphony.xwork2.DefaultUnknownHandlerManager.handleUnknownResult(DefaultUnknownHandlerManager.java:76)
com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:215)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:356)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
interceptor.LoginInterceptor.intercept(LoginInterceptor.java:23)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
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/5.5.33 logs.

--------------------编程问答--------------------  要想恢复操作 必须要重启TOMCAT 不知道什么原因呢。 --------------------编程问答-------------------- 虽然注意到你用的是比较低的Tomcat5,但其实并没有在楼主贴出来的东西中发现问题。 --------------------编程问答-------------------- 网上有SMARTUPLOAD的示例。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,