Bonjour, j'ai 16 ans, je suis en train de creer une application web avec la technologie Java EE. Mais voila ce soir je suis confronté à un petit problème. J'arrive pas a upload un fichier depuis une servlet vers mon pc (En local), j'ai suivi les cours Java mais sur ce chapitre là sans aucun succès.

OS: Windows
IDE: Eclipse
WEB Server: Tomcat (v6.0)
JDK: 1.8
Java: 8


Web.xml
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<servlet>
    <description></description>
    <display-name>Panel</display-name>
    <servlet-name>Panel</servlet-name>
    <servlet-class>eu.pixeldream.servlets.panel.Panel</servlet-class>
    <multipart-config>
    	<location>/Users/Morgan/Test/temps/</location>
    	<max-file-size>10485760</max-file-size>
        <max-request-size>20971520</max-request-size>
        <file-size-threshold>5242880</file-size-threshold>
    </multipart-config>
  </servlet>

Servlet (Panel.java)
Code java : 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package eu.pixeldream.servlets.panel;
 
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.Part;
 
import eu.pixeldream.dao.Factory.DaoFactory;
import eu.pixeldream.dao.interfaces.UsersDao;
 
public class Panel extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private UsersDao usersDao;
 
	public static final int TAILLE_TAMPON = 10240;
	public static final String CHEMIN_FICHIERS = "/Users/Morgan/Test/img/";
 
 
	public void init() {
		DaoFactory daoFactory = DaoFactory.getIstance();
		this.usersDao = daoFactory.getUsersDao();
	}
 
		protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		
			HttpSession session = request.getSession();
 
			if (session.getAttribute("email") != null) {
				request.setAttribute("users", usersDao.lister());
				this.getServletContext().getRequestDispatcher("/WEB-INF/Panel.jsp").forward(request, response);
			} else {
				this.getServletContext().getRequestDispatcher("/WEB-INF/Login.jsp").forward(request, response);
			}
		}		
 
		public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
 
 
				Part part = request.getPart("img");
 
				String nomFichier = getNomFichier(part);
 
				if (nomFichier != null && !nomFichier.isEmpty()) {
 
					nomFichier = nomFichier.substring(nomFichier.lastIndexOf('/') + 1).substring(nomFichier.lastIndexOf('\\') + 1);
			        ecrireFichier(part, nomFichier, CHEMIN_FICHIERS);
 
				}
 
 
 
 
			    this.getServletContext().getRequestDispatcher( "/WEB-INF/Panel.jsp" ).forward( request, response );
			}
 
		private void ecrireFichier(Part part, String nomFichier, String cheminFichiers) throws IOException {
			BufferedInputStream entree = null;
			BufferedOutputStream sortie = null;
 
			try{
				entree = new BufferedInputStream(part.getInputStream(), TAILLE_TAMPON);
				sortie = new BufferedOutputStream(new FileOutputStream(new File(cheminFichiers + nomFichier)), TAILLE_TAMPON);
 
				byte[] tampon = new byte[TAILLE_TAMPON];
				int longueur;
				while ((longueur = entree.read(tampon)) > 0) {
					sortie.write(tampon, 0, longueur);
				}
			} finally {
				try {
					sortie.close();
				} catch (IOException ignore) {
				}
				try {
					entree.close();
				} catch (IOException ignore) {
				}
			}
 
		}
 
		private String getNomFichier(Part part) {
			for (String contentDisposition : part.getHeader("content-disposition").split(";")) {
				if (contentDisposition.trim().startsWith("filename")) {
					return contentDisposition.substring(contentDisposition.indexOf('=') + 1).trim().replace("\"", "");
				}
			}
			return null;
		}
 
}

JSP (Panel.jsp)
Code html : 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
						<form method="post" action="panel" enctype="multipart/form-data">
 
							<div class="tab-content">
								<div id="home" class="tab-pane fade in active">
									<div class="title page-header">Informations: (privées)</div><br>
 
									<label for="info_pseudo">Pseudo : </label>
									<input type="text" class="form-control" name="info_pseudo" id="info_pseudo" value="${ users.pseudo }">
									<br>
									<label for="info_sexe">Sexe : </label>
									<select class="form-control" id="info_sexe" name="info_sexe" contenteditable="false">
										<c:if test="${ users.sexe == 'Homme' }">
											<option value="Homme">Homme</option>
											<option value="Femme">Femme</option>  
										</c:if>
										<c:if test="${ users.sexe == 'Femme' }">
											<option value="Femme">Femme</option>
											<option value="Homme">Homme</option>
										</c:if>
									</select>
									<br>
									<label for="info_img">Changer d'avatar :</label>
									<input type="file" class="form-control cursor" name="img" id="img">
									<br>
								</div>
						</form>

Erreur (Console)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.lang.AbstractMethodError: org.apache.catalina.connector.RequestFacade.getPart(Ljava/lang/String;)Ljavax/servlet/http/Part;
Je pense avoir tout mis, merci d'avance de votre aide.