写了个批量上传的程序。使用spring的MultipartFile实现文件上传。
放到服务器上以后,有的时候会出现重复插入数据两遍的现象。也就是假如总共400条数据,也就是当上传到190条左右的时候,有开始重新插入数据,我在后台打出日志,大概是这样子。 - .save(cmodel)............. 第192个商品
2010-01-22 14:13:05,899  - start.....保存商品列表行记录..for开始.....LINE398
2010-01-22 14:13:05,900  - start.....保存商品列表行记录......  商品数量:398
2010-01-22 14:13:05,940  - start.....保存商品列表行记录......  商品数量:398
2010-01-22 14:13:05,970  - .save(cmodel)............. 第0个商品
2010-01-22 14:13:06,027  - .save(cmodel)............. 第193个商品
2010-01-22 14:13:07,299  - start.....保存商品列表行记录......  商品数量:398
2010-01-22 14:13:07,352  - start.....保存商品列表行记录......  商品数量:398
2010-01-22 14:13:07,381  - .save(cmodel)............. 第1个商品
2010-01-22 14:13:07,434  - .save(cmodel)............. 第194个商品
2010-01-22 14:13:08,705  - start.....保存商品列表行记录......  商品数量:398
2010-01-22 14:13:08,781  - .save(cmodel)............. 第2个商品
2010-01-22 14:13:09,390  - start.....保存商品列表行记录......  商品数量:398
2010-01-22 14:13:09,466  - .save(cmodel)............. 第195个商品
2010-01-22 14:13:10,079  - start.....保存商品列表行记录......  商品数量:398
2010-01-22 14:13:10,151  - .save(cmodel)............. 第3个商品出现这种重复上传的现象(没有进行二次提交)。只是当使用火狐的时候才出现的,
当我使用IE7的时候,就没有出现进行到一半的时候再次插入数据的现象,可是后台却报错了。[18:46:23.132] Caused by: com.caucho.vfs.ClientDisconnectException: client timeout
[18:46:23.132]  at com.caucho.vfs.JniStream.exception(JniStream.java:186)
[18:46:23.132]  at com.caucho.vfs.JniStream.read(JniStream.java:114)
[18:46:23.132]  at com.caucho.vfs.ReadStream.read(ReadStream.java:383)
[18:46:23.132]  at com.caucho.server.http.ContentLengthStream.read(ContentLengthStream.java:78)
[18:46:23.132]  at com.caucho.vfs.ReadStream.read(ReadStream.java:383)
[18:46:23.132]  at com.caucho.server.connection.ServletInputStreamImpl.read(ServletInputStreamImpl.java:78)
[18:46:23.132]  at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:977)
[18:46:23.132]  at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:887)
[18:46:23.132]  at java.io.InputStream.read(InputStream.java:89)
[18:46:23.132]  at org.apache.commons.fileupload.util.Streams.copy(Streams.java:94)
[18:46:23.132]  at org.apache.commons.fileupload.util.Streams.copy(Streams.java:64)
[18:46:23.132]  at org.apache.commons.fileupload.MultipartStream.readBodyData(MultipartStream.java:593)
[18:46:23.132]  at org.apache.commons.fileupload.MultipartStream.discardBodyData(MultipartStream.java:619)
[18:46:23.132]  at org.apache.commons.fileupload.MultipartStream.skipPreamble(MultipartStream.java:638)
[18:46:23.132]  at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.findNextItem(FileUploadBase.java:961)
[18:46:23.132]  at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:942)
[18:46:23.132]  at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331)
[18:46:23.132]  at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:349)
[18:46:23.132]  ... 29 more
[18:46:23.141] org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadException: connection reset by peer
[18:46:23.141]  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:583)
[18:46:23.141]  at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
[18:46:23.141]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:154)
[18:46:23.141]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
[18:46:23.141]  at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
[18:46:23.141]  at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115)
[18:46:23.141]  at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
[18:46:23.141]  at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:277)
[18:46:23.141]  at com.caucho.server.webapp.RequestDispatcherImpl.error(RequestDispatcherImpl.java:113)
[18:46:23.141]  at com.caucho.server.webapp.ErrorPageManager.sendServletError(ErrorPageManager.java:362)
[18:46:23.141]  at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
[18:46:23.141]  at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
[18:46:23.141]  at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
[18:46:23.141]  at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)
[18:46:23.141]  at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
[18:46:23.141]  at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
[18:46:23.141]  at java.lang.Thread.run(Thread.java:595)
[18:46:23.141] Caused by: org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadException: connection reset by peer
[18:46:23.141]  at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:172)
[18:46:23.141]  at org.springframework.web.multipart.commons.CommonsMultipartResolver.resolveMultipart(CommonsMultipartResolver.java:149)
[18:46:23.141]  at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1015)
[18:46:23.141]  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:851)
[18:46:23.141]  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
[18:46:23.141]  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
[18:46:23.141]  ... 16 more
[18:46:23.141] Caused by: org.apache.commons.fileupload.FileUploadException: connection reset by peer
[18:46:23.141]  at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:381)
[18:46:23.141]  at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
[18:46:23.141]  at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:165)
[18:46:23.141]  ... 21 more
[18:46:23.141] Caused by: com.caucho.vfs.ClientDisconnectException: connection reset by peer
[18:46:23.141]  at com.caucho.vfs.JniStream.exception(JniStream.java:189)
[18:46:23.141]  at com.caucho.vfs.JniStream.read(JniStream.java:114)
[18:46:23.141]  at com.caucho.vfs.ReadStream.read(ReadStream.java:383)
[18:46:23.141]  at com.caucho.server.http.ContentLengthStream.read(ContentLengthStream.java:78)
[18:46:23.141]  at com.caucho.vfs.ReadStream.read(ReadStream.java:383)
[18:46:23.141]  at com.caucho.server.connection.ServletInputStreamImpl.read(ServletInputStreamImpl.java:78)
[18:46:23.141]  at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:977)
[18:46:23.141]  at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:887)
[18:46:23.141]  at java.io.InputStream.read(InputStream.java:89)
[18:46:23.141]  at org.apache.commons.fileupload.util.Streams.copy(Streams.java:94)
[18:46:23.141]  at org.apache.commons.fileupload.util.Streams.copy(Streams.java:64)
[18:46:23.141]  at org.apache.commons.fileupload.MultipartStream.readBodyData(MultipartStream.java:593)
[18:46:23.141]  at org.apache.commons.fileupload.MultipartStream.discardBodyData(MultipartStream.java:619)
[18:46:23.141]  at org.apache.commons.fileupload.MultipartStream.skipPreamble(MultipartStream.java:638)
[18:46:23.141]  at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.findNextItem(FileUploadBase.java:961)
[18:46:23.141]  at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:942)
[18:46:23.141]  at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331)
[18:46:23.141]  at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:349)
[18:46:23.141]  ... 23 more
不知道是什么问题,怎么解决帮忙提供个思路。谢谢。