Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CommonsMultipartFile-FileNotFoundException_Java_Spring_File_File Upload - Fatal编程技术网

Java CommonsMultipartFile-FileNotFoundException

Java CommonsMultipartFile-FileNotFoundException,java,spring,file,file-upload,Java,Spring,File,File Upload,我试图开发一个应用程序,用户将上传一个文件从屏幕上,该文件将在服务器端处理。 我正在使用AdobeFlexforUI、Spring3.2作为中间件和Java5。我可以成功上传文件,并在服务器端,可以得到文件名。但是当我试图获取InputStream时,我得到了FileNotFoundException。它尝试在应用程序服务器内的某个位置创建临时文件,并尝试读取该临时文件进行处理,但未能创建该临时文件。下面是我试图获取该文件的代码段- public List<TransactionVO>

我试图开发一个应用程序,用户将上传一个文件从屏幕上,该文件将在服务器端处理。 我正在使用AdobeFlexforUI、Spring3.2作为中间件和Java5。我可以成功上传文件,并在服务器端,可以得到文件名。但是当我试图获取
InputStream
时,我得到了
FileNotFoundException
。它尝试在应用程序服务器内的某个位置创建临时文件,并尝试读取该临时文件进行处理,但未能创建该临时文件。下面是我试图获取该文件的代码段-

public List<TransactionVO> populateVO(VoucherUploadCommandForm object,
Connection conn) throws XenosException {
   log.debug("InVoucherVOPopulatorForExcelUpload.populateVO()");
     if(object == null){
     log.debug(" No file uploaded :(");
   }else{
     CommonsMultipartFile file = object.getFileName();
     log.debug(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Excel file uploaded :)");
     log.debug("Excel file= "+ file.getOriginalFilename());
     try {
        log.debug("Excel Size= "+ file.getSize());
        log.debug("Excel fileItem= "+ file.getFileItem().getInputStream());
     } catch (IOException e) {
         log.error(e);
     }
   }
   return null;
}
公共列表populateVO(VoucherUploadCommandForm对象,
连接连接(conn)引发异常{
debug(“invouchervopulatorforexcelupload.populateVO()”;
if(object==null){
log.debug(“未上载文件:(”);
}否则{
CommonsMultipartFile文件=object.getFileName();
log.debug(“>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>上传的Excel文件:)”;
log.debug(“Excel文件=“+file.getOriginalFilename());
试一试{
log.debug(“Excel Size=“+file.getSize());
log.debug(“Excel fileItem=“+file.getFileItem().getInputStream());
}捕获(IOE异常){
日志错误(e);
}
}
返回null;
}
错误的堆栈跟踪如下所示-

SEVERE: Exception loading sessions from persistent storage
java.io.FileNotFoundException: C:\apache-tomcat-6.0.20\work\Catalina\localhost\rui-1.1-xenos\upload_375f4172_d416_4ae2_975f_bc5e908a8303_00000007.tmp (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at org.apache.commons.fileupload.disk.DiskFileItem.readObject(DiskFileItem.java:663)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1441)
at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:942)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394)
at org.apache.catalina.session.StandardManager.load(StandardManager.java:321)
at org.apache.catalina.session.StandardManager.start(StandardManager.java:637)
at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:438)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4358)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Nov 25, 2013 2:56:18 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8084
Nov 25, 2013 2:56:18 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Nov 25, 2013 2:56:18 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/20 config=null
Nov 25, 2013 2:56:18 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 45220 ms
严重:从持久存储加载会话时出现异常
java.io.FileNotFoundException:C:\apache-tomcat-6.0.20\work\Catalina\localhost\rui-1.1-xenos\upload\U 375f4172\U d416\U 4ae2\U 975f\U bc5e908a8303\U 00000007.tmp(系统找不到指定的文件)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:106)
位于org.apache.commons.fileupload.disk.DiskFileItem.readObject(DiskFileItem.java:663)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:585)
位于java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
位于java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
位于java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
位于java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
位于java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
位于java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
位于java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
位于java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
位于java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
位于java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
位于java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
位于java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
位于java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
位于org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1441)
位于org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:942)
位于org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394)
位于org.apache.catalina.session.StandardManager.load(StandardManager.java:321)
位于org.apache.catalina.session.StandardManager.start(StandardManager.java:637)
位于org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:438)
位于org.apache.catalina.core.StandardContext.start(StandardContext.java:4358)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
位于org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
位于org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556)
位于org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
位于org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
位于org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
在org.apache.catalina.util.LifecycleSupport.FireLifecycleSupport(LifecycleSupport.java:119)上
位于org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
位于org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
位于org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
位于org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
位于org.apache.catalina.core.StandardService.start(StandardService.java:516)
位于org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
位于org.apache.catalina.startup.catalina.start(catalina.java:583)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:585)
位于org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
位于org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2013年11月25日下午2:56:18 org.apache.coyote.http11.http11协议启动
信息:在HTTP-8084上启动Coyote HTTP/1.1
2013年11月25日下午2:56:18 org.apache.jk.common.ChannelSocket init
信息:JK:ajp13正在收听/0.0.0.0:8009
2013年11月25日下午2:56:18 org.apache.jk.server.JkMain开始
信息:Jk运行ID=0时间=0/20配置=null
2013年11月25日下午2:56:18 org.apache.catalina.startup.catalina start
信息:服务器启动时间为45220毫秒

将您的
CommonsMultipartResolver
配置为使用默认目录以外的内容。对于此设置,
CommonsMultipartResolver
uploadTempDir
属性

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="uploadTempDir" value="d:/temp" />
</bean>

对我只是使用CommonsMultipartFile进行测试。一旦完成,我将使用Mul
public List<TransactionVO> populateVO(VoucherUploadCommandForm object, Connection conn) throws XenosException {
    log.debug("InVoucherVOPopulatorForExcelUpload.populateVO()");
    if(object == null){
        log.debug(" No file uploaded :(");
    }else{
        MultipartFile file = object.getFileName();
        log.debug(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Excel file uploaded :)");
        log.debug("Excel file= "+ file.getOriginalFilename());
        try {
            log.debug("Excel Size= "+ file.getSize());
            log.debug("Excel fileItem= "+ file.getInputStream());
        } catch (IOException e) {
            log.error(e);
        }
    }
    return null;
}