Salut a tous,

J'ai developpe 2 servlets et 1 JSP qui communique entre elles.
La 1ere servlet (AGSenderServlet) appelle la 2eme servlet (AGReceiverServlet) pour lui envoyer un fichier.
Ensuite, une fois le fichier recu, la 2eme servlet appelle la page JSP.

Tout marche bien sauf le dernier appel pour la JSP. Rien ne se passe en fait. Pas d'erreur ou d'exception. Le code de la JSP n'est meme pas parcouru.

Voici mes 2 servlets:
- AGSenderServlet »

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import java.io.File;
import java.io.IOException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;
import org.apache.commons.httpclient.params.HttpMethodParams;
 
//This servlet sends a file to another server
public class AGSenderServlet extends HttpServlet {
	public void doGet(HttpServletRequest request,
            HttpServletResponse response)
	throws ServletException, IOException {
		String filename = request.getParameter("filename");
		String ext = request.getParameter("ext");
		String serverName = request.getParameter("serverName");
		String port = request.getParameter("port");
		String path = null;
		String uri = "http://"+serverName+":"+port+"/AGReceiverServlet";
 
		//System.out.println(this.getServletContext().getRealPath("/"));
		File file = new File((this.getServletContext().getRealPath("/sync/out"))+"\\"+filename+'.'+ext);
		System.out.println("Test = "+file.getAbsolutePath());
		PostMethod post = new PostMethod(uri);
        Part[] parts = new Part[] {
        	//new StringPart("hostname", hostname),
            new FilePart(file.getName(), file) // File you want to upload
        };
        post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams()));
        //MultipartRequestEntity multipart = new MultipartRequestEntity(parts, post.getParams());
 
        // Now perform the POST and check for errors
        HttpClient http = new HttpClient();
        post.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, 
        		new DefaultHttpMethodRetryHandler(3, false));
 
        int status = http.executeMethod(post);
 
        //if (status != HttpStatus.SC_OK) {
        //    throw new IOException("Received HTTP status code " + status);
        //}		
	}
 
	public void doPost(HttpServletRequest request,
            HttpServletResponse response)
	throws ServletException, IOException {
			doGet(request, response);
	}
}
- AGReceiverServlet »

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
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
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FilenameUtils;
 
//This servlet receives a file from another server
public class AGReceiverServlet extends HttpServlet {
	public void doGet(HttpServletRequest request,
            HttpServletResponse response)
	throws ServletException, IOException {
	    // Create a factory for disk-based file items
		DiskFileItemFactory factory = new DiskFileItemFactory();
 
	    // Create a new file upload handler
		ServletFileUpload upload = new ServletFileUpload(factory);
		String realPath = this.getServletContext().getRealPath("sync/in");
		List items = null;
				try {
					items = upload.parseRequest(request);
				} catch (FileUploadException e) {
					e.printStackTrace();
				}
				// Process the uploaded items
				Iterator iter = items.iterator();
				try {
					String fileName = "blabla";
					while (iter.hasNext()) {
						FileItem item = (FileItem) iter.next();
						// Process a file upload
						if (!item.isFormField()) {					
							fileName = item.getName();
							long sizeInBytes = item.getSize();
							//Write to File
							if (fileName != null) {
						        fileName = FilenameUtils.getName(fileName);
						    }
							File uploadedFile = new File(realPath);
							if (!uploadedFile.exists())
								uploadedFile.mkdirs();
							System.out.println("PATH = "+realPath+"/"+fileName);
							uploadedFile = new File(realPath+"/"+fileName);
 
							item.write(uploadedFile);
						}
					}
					System.out.println("http://"+request.getServerName()+':'+request.getServerPort()+"/upTool/filereceived.jsp?filename="+fileName);
					String redirectURL = "http://"+request.getServerName()+':'+request.getServerPort()+"/upTool/filereceived.jsp?filename="+fileName;
					response.sendRedirect(redirectURL);
					//response.sendRedirect("http://www.google.com");
 
				} catch (Exception e) {
					e.printStackTrace();
				}
 
	}
 
	public void doPost(HttpServletRequest request,
            HttpServletResponse response)
	throws ServletException, IOException {
			doGet(request, response);
	}
}
J'ai poste mon probleme sur le forum Java mais y a qu'une personne qui m'a repondu et je comprend pas vraiment ce qu'il a voulu m'explique. Apparemment ca viendrait de la reponse envoyee par response.sendRedirect(redirectURL); de ma 2eme servlet qui n'est bien interprete par ma 1ere servlet
J'ai essaye d'utiliser la fonction forward du dispatcher mais ca me donne le meme resultat.
Voici la conversation: http://forums.sun.com/thread.jspa?me...47964#11047964