Java Struts多文件上载问题将单个文件复制到目标后获取FileNotFoundException

Java Struts多文件上载问题将单个文件复制到目标后获取FileNotFoundException,java,tomcat,file-upload,struts2,filenotfoundexception,Java,Tomcat,File Upload,Struts2,Filenotfoundexception,我正在尝试使用Struts上传多个文件。在服务器端,仅复制一个文件。对于其他文件,我得到了java.io.FileNotFoundException 我能够以任何索引复制ArrayList中的文件。但问题是,如果我复制下一个文件,它将引发异常 似乎.tmp文件在我将单个文件复制到目标后被删除 请帮我解决这个问题两天了 行动: public String upload() throws Exception{ System.out.println("In Upload action"

我正在尝试使用Struts上传多个文件。在服务器端,仅复制一个文件。对于其他文件,我得到了
java.io.FileNotFoundException

我能够以任何索引复制ArrayList中的文件。但问题是,如果我复制下一个文件,它将引发异常

似乎
.tmp
文件在我将单个文件复制到目标后被删除

请帮我解决这个问题两天了

行动

public String upload() throws Exception{
        System.out.println("In Upload action");
        String[] fileNames={"array.txt","pdsn.csv","crm.txt","tipps.txt"};
        //String destPath=request.getServletContext().getRealPath("")+"\\ArrayCrmData";
        String destPath=saveDirectory;
        int index=0;
        for (String fileName: fileUploadFileName) {
            System.out.println("Filename : " + fileName);

        }

        for (String fileContentType: fileUploadContentType) {
            System.out.println("File type : " + fileContentType);
        }
        try {

                System.out.println();
                File destFile  = new File(destPath,fileNames[0]);
                FileUtils.copyFile(fileUpload.get(0), destFile);
                System.out.println("Copied:"+destFile.getAbsolutePath()+" From:"+ fileUploadFileName.get(0));
                destFile  = new File(destPath,fileNames[2]);
                FileUtils.copyFile(fileUpload.get(2), destFile);
                System.out.println("Copied:"+destFile.getAbsolutePath()+" From:"+ fileUploadFileName.get(2));
                destFile  = new File(destPath,fileNames[3]);
                FileUtils.copyFile(fileUpload.get(3), destFile);
                System.out.println("Copied:"+destFile.getAbsolutePath()+" From:"+ fileUploadFileName.get(3));
                destFile  = new File(destPath,fileNames[1]);
                FileUtils.copyFile(fileUpload.get(1), destFile);
                System.out.println("Copied:"+destFile.getAbsolutePath()+" From:"+ fileUploadFileName.get(1));
            return SUCCESS;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }return "fail";

    }
JSP


Struts.xml


D:/temp
950971510000
longRunningAction-wait.jsp
temp.jsp
/uploadFail.jsp
堆栈跟踪:

Unexpected Exception caught setting 'submit' on 'class arrayActions.MultiUpload: Error setting expression 'submit' with value ['submit', ]
In Upload action
Filename : 31Days.txt
Filename : 15Days.txt
Filename : 5days.txt
Filename : april_logins.txt
File type : text/plain
File type : text/plain
File type : text/plain
File type : text/plain
May 25, 2015 12:03:45 PM org.apache.struts2.util.TokenHelper warn
WARNING: Could not find token mapped to token name token
Copied:D:\temp\tipps.txt From:april_logins.txt
java.io.FileNotFoundException: Source 'D:\IDM_Prji\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\work\Catalina\localhost\FpoAutomation\upload_30ff7d78_f31d_4f15_9222_7f8a47eb26f0_00000002.tmp' does not exist
    at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1004)
    at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:968)
    at arrayActions.MultiUpload.upload(MultiUpload.java:76)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:870)
    at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1293)
    at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68)
    at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:117)
    at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:108)
    at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1369)
    at ognl.ASTMethod.getValueBody(ASTMethod.java:90)
    at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
    at ognl.SimpleNode.getValue(SimpleNode.java:258)
    at ognl.Ognl.getValue(Ognl.java:494)
    at ognl.Ognl.getValue(Ognl.java:458)
    at com.opensymphony.xwork2.ognl.OgnlUtil$2.execute(OgnlUtil.java:309)
    at com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecute(OgnlUtil.java:340)
    at com.opensymphony.xwork2.ognl.OgnlUtil.getValue(OgnlUtil.java:307)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:423)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:287)
    at org.apache.struts2.interceptor.BackgroundProcess$1.run(BackgroundProcess.java:57)
    at java.lang.Thread.run(Thread.java:744)
May 25, 2015 12:03:50 PM com.opensymphony.xwork2.interceptor.ParametersInterceptor error
SEVERE: Developer Notification (set struts.devMode to false to disable this message):
Unexpected Exception caught setting 'submit' on 'class arrayActions.MultiUpload: Error setting expression 'submit' with value ['submit', ]

删除了“execAndWait”拦截器。它就像一个符咒

请尝试使用w/o
execAndWait
interceptor。非常感谢……你是我的救命恩人。在删除execAndWait之后,它工作了interceptor@MarimuthuMahalingam:您可以将您的解决方案作为答案发布并接受它。