I added a "maxHttpRequestHeader" parameter to the tomcat HTTP connector, setting it to a high value. After this the flow gets on a little bit further, but I'm getting an exception during the parseRequest call -
2006-10-09 21:05:00,280 DEBUG [http-8090-Processor24] codestore.CodeStoreUploader (CodeStoreUploader.java:173) - Handling file input... 2006-10-09 21:05:00,280 DEBUG [http-8090-Processor24] codestore.CodeStoreUploader (CodeStoreUploader.java:174) - Request Content Length: -1 2006-10-09 21:05:00,280 DEBUG [http-8090-Processor24] codestore.CodeStoreUploader (CodeStoreUploader.java:207) - processing upload request... 2006-10-09 21:05:00,280 DEBUG [http-8090-Processor24] codestore.CodeStoreUploader (CodeStoreUploader.java:222) - Trying to upload... org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException : the request doesn't contain a multipart/form-data or multipart/mixed stream, content ty at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase .java:299) at uk.ac.ncl.neresc.dynasoar.codestore.CodeStoreUploader.handleFile(CodeSto reUploader.java:225) at uk.ac.ncl.neresc.dynasoar.codestore.CodeStoreUploader.doPost(CodeStoreUp loader.java:175) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo ntext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 20) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon textValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo ntext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 20) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo ntext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo ntext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 20) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo ntext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 20) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:79 9) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC onnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:57 7) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool .java:683) It says that the request is not multipart form-data - but I've already done that - out.println("Please provide the VM name and select the files you wish to upload and then click the Upload button"); out.println("<br/>"); out.println("<b>"); out.println("Please make sure that the 1st entry is the config file, the 2nd entry is the XML description and the other entires are for the hard disk(s)"); out.println("</b>"); out.println("<br/>"); out.println("<form enctype=\"multipart/form-data\" action=\"CodeStoreUploader\" method=POST>"); out.println("<b>"); out.println("VM Name "); out.println("</b>"); out.println("<input name=vmname type=text size=30"); out.println("<br/>"); out.println("<input name=configfile type=file size=100"); out.println("<br/>"); out.println("<input name=descfile type=file size=100"); out.println("<br/>"); out.println("<input name=virtualharddisk1 type=file size=100"); out.println("<br/>"); out.println("<input name=virtualharddisk2 type=file size=100"); out.println("<br/>"); out.println("<input name=virtualharddisk3 type=file size=100"); out.println("<br/>"); out.println("<input name=virtualharddisk4 type=file size=100"); out.println("<br/>"); out.println("<input name=virtualharddisk5 type=file size=100"); out.println("<br/>"); out.println("<input type=submit value=Upload>"); What could have gone wrong? Regards Arijit >-----Original Message----- >From: Arijit Mukherjee [mailto:[EMAIL PROTECTED] >Sent: 09 October 2006 16:40 >To: Jakarta Commons Users List >Subject: RE: [fileupload] Help with Commons FileUpload > >The servlet is on Tomcat 5.0.28. I was trying to find out if >that has a limit in the max size - found nothing yet, and the >same tomcat and same file upload code works fine on a >powerbook, which made me think about the 32bit/64bit thing... > >Arijit > >>-----Original Message----- >>From: Andrew [mailto:[EMAIL PROTECTED] >>Sent: 09 October 2006 16:28 >>To: Jakarta Commons Users List >>Subject: Re: [fileupload] Help with Commons FileUpload >> >>What are you running on? Apache/Jakarta/Jboss? What version? >> >>Andrew >>Arijit Mukherjee wrote: >>> Thanx Andrew - but I've already tried a nightly build - it >>didn't help. >>> Seems like the request doesn't even reach the server's file >handling >>> method:-(( >>> >>> Arijit >>> >>> >>>> -----Original Message----- >>>> From: Andrew [mailto:[EMAIL PROTECTED] >>>> Sent: 09 October 2006 16:12 >>>> To: Jakarta Commons Users List >>>> Subject: Re: [fileupload] Help with Commons FileUpload >>>> >>>> Yes, contentLength is an INT. That is what was killing me >>when using >>>> FileUpload 1.1.1. It would get a negative number as the content >>>> length and throw that UnknownSizeException. >>>> The nightly builds seem to have fixed that for me though as they >>>> actually pay attention to the maxSize parameter now (i.e. >>>> if it is -1, then ignore contentSize). >>>> >>>> As for the 32 bit windows/linux, i haven't tried that. >I'm running >>>> on >>>> 64 bit linux/solaris. >>>> >>>> Andrew >>>> Arijit Mukherjee wrote: >>>> >>>>> By any chance, can it be limited by the contentLength of the http >>>>> request - because that's an INT? >>>>> >>>>> Arijit >>>>> >>>>> >>>>> >>>>>> -----Original Message----- >>>>>> From: Arijit Mukherjee [mailto:[EMAIL PROTECTED] >>>>>> Sent: 09 October 2006 14:50 >>>>>> To: Jakarta Commons Users List >>>>>> Subject: [fileupload] Help with Commons FileUpload >>>>>> >>>>>> Hi All >>>>>> >>>>>> It's about the max allowable upload again. >>>>>> >>>>>> Earlier, I was trying to upload a single file (from a servlet) >>>>>> >>>>>> >>>>>>> 2GB, which didn't work. The methods I've been using are as >>>>>>> >>>>>>> >>>>>> in the mail below. >>>>>> It seems that the "handleFile" method isn't being invoked at all. >>>>>> >>>>>> I tried to break the file into smaller chunks < 2GB, but >>>>>> >>>> even in that >>>> >>>>>> case, the upload doesn't work, and now I'm getting an error >>>>>> >>> >from the >>> >>>>>> browser - >>>>>> >>>>>> "The connection was reset >>>>>> The connection to the server was reset while the page >was loading. >>>>>> * The site could be temporarily unavailable or too busy. >>>>>> Try again >>>>>> in a few >>>>>> moments. >>>>>> * If you are unable to load any pages, check your computer's >>>>>> network >>>>>> connection. >>>>>> * If your computer or network is protected by a firewall >>>>>> or proxy, >>>>>> make sure >>>>>> that Firefox is permitted to access the Web." >>>>>> >>>>>> There is a similar error on IE too. >>>>>> >>>>>> My question is - if there is a problem with the file >>size, then the >>>>>> servlet should throw an exception while invoking the >>commons upload >>>>>> APIs. But, it's not going there at all - as it seems. I had >>>>>> >>>> a feeling >>>> >>>>>> that there might be limits in size in the HTTP request >>itself - but >>>>>> even that's not the case because I've been able to upload bigger >>>>>> files with the same code on a Mac Powerbook (using >commons-upload >>>>>> 1.0). It's failing when I'm trying to do the same thing >>on a WinXP >>>>>> machine or a Linux machine. Earlier I posted a message >suspecting >>>>>> that it probably has something to do with addressing >>system of the >>>>>> machines - like 64 bit or 32 bits - but I thought that >>would be the >>>>>> case for a single file size. >>>>>> >>>>>> Has anyone been able to upload files > 2GB on a windows or linux >>>>>> (32 >>>>>> bit) system? Can you please give me some pointers? >>>>>> >>>>>> Thanx in advance >>>>>> Arijit >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>> -----Original Message----- >>>>>>> From: Arijit Mukherjee [mailto:[EMAIL PROTECTED] >>>>>>> Sent: 02 October 2006 17:09 >>>>>>> To: commons-user@jakarta.apache.org >>>>>>> Subject: Commons - Help with Commons FileUpload >>>>>>> >>>>>>> Hi All >>>>>>> >>>>>>> I have been using the Apache Commons FileUpload package >for some >>>>>>> time (mostly simple use cases) but stuck into something >recently. >>>>>>> >>>>>>> >>>>>> I'm trying >>>>>> >>>>>> >>>>>>> to upload files (greater than 2GB) onto a server using >>the commons >>>>>>> upload package within a servlet (inside tomcat). Anything >>>>>>> >>>>>>> >>>>>> less than 2GB >>>>>> >>>>>> >>>>>>> works alright (although slowly), but anything more than >>>>>>> >>>> that simply >>>> >>>>>>> doesn't do anything. In the "doPost" method of the servlet, I >>>>>>> >>>>>>> >>>>>> have two >>>>>> >>>>>> >>>>>>> options based on an init parameter - either handling the >>>>>>> >>>> option, or >>>> >>>>>>> handling the file - so the commons API's are used in the >>>>>>> handleFile() method - >>>>>>> >>>>>>> public void doPost(HttpServletRequest request, >>HttpServletResponse >>>>>>> response) >>>>>>> throws IOException, ServletException { >>>>>>> try { >>>>>>> if (!init) { >>>>>>> mLog.debug("Handling file input..."); >>>>>>> handleFile(request, response); >>>>>>> } else { >>>>>>> mLog.debug("Handling option input..."); >>>>>>> handleRadioOption(request, response); >>>>>>> } >>>>>>> } catch (Exception ex) { >>>>>>> ex.printStackTrace(); >>>>>>> } >>>>>>> } >>>>>>> >>>>>>> private void handleFile(HttpServletRequest request, >>>>>>> >>>>>>> >>>>>> HttpServletResponse >>>>>> >>>>>> >>>>>>> response) >>>>>>> throws IOException, >ServletException { >>>>>>> >>>>>>> PrintWriter out = response.getWriter(); >>>>>>> ... >>>>>>> boolean isMultipart = >>>>>>> ServletFileUpload.isMultipartContent(request); >>>>>>> // Create a new file upload handler >>>>>>> FileItemFactory factory = new DiskFileItemFactory(); >>>>>>> ServletFileUpload upload = new >>>>>>> >>>> ServletFileUpload(factory); >>>> >>>>>>> // Set overall request size constraint >>>>>>> upload.setSizeMax(-1); >>>>>>> upload.setFileSizeMax(-1); >>>>>>> // Parse the request >>>>>>> List items = upload.parseRequest(request); >>>>>>> ... >>>>>>> } >>>>>>> >>>>>>> It seems that when the files are selected and the "upload" >>>>>>> button is clicked on the browser (a submit action), the >>>>>>> >>>>>>> >>>>>> control doesn't >>>>>> >>>>>> >>>>>>> go into this method at all - only when one of the files are >>>>>>> >>>>>>> >>>>>> larger than >>>>>> >>>>>> >>>>>>> 2GB - otherwise, it executes fine. >>>>>>> I've tried several combinations for setting the max file >>>>>>> >>>>>>> >>>>>> size, but none >>>>>> >>>>>> >>>>>>> seem to work. Can it be related to the servlet APIs >>>>>>> >>>> somehow? Is the >>>> >>>>>>> httpRequest size too large in this case? >>>>>>> >>>>>>> Thanx in advance for any help. >>>>>>> >>>>>>> Regards >>>>>>> Arijit >>>>>>> >>>>>>> >>>>>>> "And when the night is cloudy, >>>>>>> There is still a light that shines on me, Shine on until >>>>>>> >>>>>>> >>>>>> tomorrow, let >>>>>> >>>>>> >>>>>>> it be. " >>>>>>> >>>>>>> John Lennon/Paul McCartney >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>> >>--------------------------------------------------------------------- >>>> >>>>>> To unsubscribe, e-mail: >>[EMAIL PROTECTED] >>>>>> For additional commands, e-mail: >>>>>> >>>> [EMAIL PROTECTED] >>>> >>>>>> >>>>>> >>>>> >>-------------------------------------------------------------------- >>>>> - To unsubscribe, e-mail: >>>>> [EMAIL PROTECTED] >>>>> For additional commands, e-mail: >>>>> [EMAIL PROTECTED] >>>>> >>>>> >>>>> >>>> >>>> >>--------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>> For additional commands, e-mail: >>[EMAIL PROTECTED] >>>> >>>> >>>> >>> >>> >--------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: >[EMAIL PROTECTED] >>> >>> >> >> >> >>--------------------------------------------------------------------- >>To unsubscribe, e-mail: [EMAIL PROTECTED] >>For additional commands, e-mail: [EMAIL PROTECTED] >> >> > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]