Je trouve quelque chose d'intéressant, quand j'utilise myeclipse pour déployer un projet web, je peux télécharger une image avec succès, mais quand je mets .war à tomcat/webapps et démarrage tomcat, je ne peux pas télécharger l'image. Et ceci est le journal de tomcat:tomcat-use rorg.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload
java.lang.NoSuchMethodError: org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload.parseRequest(Ljavax/servlet/http/HttpServletRequest;)Ljava/util/List;
at dao.ImageUploadDao.upload(ImageUploadDao.java:32)
at servlet.imageUploadServlet.doPost(imageUploadServlet.java:42)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:277)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2407)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2396)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:744)
Alors quelqu'un peut-il me dire pourquoi? Je pense que myeclipse peut faire quelque chose en plus. Et j'ai la solution que d'utiliser org.apache.commons.fileupload.jar à la place de org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload.jar, ce dernier appartient à tomcat lib.
Mais je pense que la solution est de cacher le fait, parce que quand je n'exporte pas org.apache.commons.fileupload.jar
, j'utilise myeclipse pour déployer le projet, est également ok, cela illustre org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload.jar
est également ok.
Quelle version de MyEclipse utilisez-vous? Aussi, dites-vous que si vous utilisez le fichier apache fileupload jar (au lieu de jar filerpload) alors vous ne voyez pas de problème, peu importe comment l'application est déployée? –
J'utilise
Version: 2014
Numéro de build: 12.0.0-20131202
Je pense que la bibliothèque de tomcat de tomcat ne possède pas de fichier apache commun, donc je ne vois pas de problème. Mais c'est pourquoi?
Lorsque j'utilise org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload, le résultat de deux déploiements est différent? – Gauss