[Tomcat/Commons FileUpload] Plantage des uploads concurrents ou un RequestDispatcher
Bonjour,
J'ai un problème assez bizarre. J'ai implémenté un système d'upload de fichier, sur un serveur Tomcat, en utilisant Jakarta Commons FileUpload.
Le problème est que les uploads concurrents provoquent des plantages. Si je démarre un upload, ça plante un éventuel autre upload déjà en cours, de amnière complètement inexplicable. Ca veut dire que seulement un utilisateur peut uploader à la fois, ce qui est très génant.
Quelqu'un a déjà rencontré un problème de ce genre ? Comment le résoudre ?
Configuration de mon serveur :
Debian Linux
Java 5
Tomcat 5
Jakarta Commons FileUpload 1.2
edit : en y regardant de plus près, il est possible que ça soit un problème de RequestDispatcher (je fais un forward). J'ai vu une exception :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| 04 oct. 2007 12:47:42,371 - ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/i-Contact].[jsp] - "Servlet.service()" pour la servlet jsp a lanc▒ une exception
java.lang.NullPointerException
at org.apache.jsp.feedback_jsp._jspService(org.apache.jsp.feedback_jsp:61)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at com.pixvisio.icontact.servlets.AbstractPixvisioServlet.gotoFeedback(AbstractPixvisioServlet.java:58)
at com.pixvisio.icontact.servlets.UploadServlet.doPost(UploadServlet.java:452)
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(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595) |