IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[Tomcat/Commons FileUpload] Plantage des uploads concurrents ou un RequestDispatcher


Sujet :

Servlets/JSP Java

  1. #1
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut [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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Un début de piste éventuelle : Le multipart utilisé pour uploader le fichier (l'application permet d'uploader des images qui peuvent être plutôt volumineuses) est toujours attaché à la request quand je la redirige vers une nouvelle URL. Ce qui veut dire qu'on manipule de gros objets, et dans un contexte d'accès concurrent, ça peut rapidement tout faire péter, ça, je pense. Reste à savoir comment obtenir un nouvel HttpServletRequest sans multipart, tout en conservant les informations de session. Quelqu'un a une idée ?

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Peux tu fournir l'instruction exécutée ligne 61 dans org.apache.jsp.feedback_jsp ?

    Tu trouveras la classe Java correspondant à ta jsp dans CATALINA_HOME/work/localhost/...

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/09/2009, 09h37
  2. Upload cancel [org.apache.commons.fileupload]?
    Par kescatefou dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 26/08/2008, 13h34
  3. Réponses: 3
    Dernier message: 08/05/2006, 23h31
  4. [Tomcat] Redemarrage obligatoire apres un upload
    Par ShinJava dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 11/07/2005, 14h59
  5. [JSP][Tomcat] : forcer la compilation des jsp.
    Par Ekros dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 29/04/2004, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo