Bonjour,
J'ai un problème avec mon applet et ma servlet que je n'arrive pas à résoudre : j'ai suivi la FAQ mais ça ne marche pas. Ma servlet n'est pas lancée!
Sauriez-vous d'où cela peut provenir?
Merci par avance.
Julie
Bonjour,
J'ai un problème avec mon applet et ma servlet que je n'arrive pas à résoudre : j'ai suivi la FAQ mais ça ne marche pas. Ma servlet n'est pas lancée!
Sauriez-vous d'où cela peut provenir?
Merci par avance.
Julie
Personne n'a déjà rencontré ce problème? Aidez moi s'il vous plait...
Bonjour,
Je ne pense pas qu'il y a une personne qui peut t'aider si tu donnes pas plus d'informations... C'est gratuit
Poste ton message d'erreur et dis nous c'est quoi le problème exactement
Ben mon problème c'est que je n'ai pas de message d'erreur! Rien ne se passe m'a servlet n'est pas appelée. Si j'avais un message d'erreur j'aurais peut etre trouvé d'où il venait mais là je n'ai rien!!
Coté applet j'ai mis ça:
et coté servlet j'ai mis ça dans la fonction doPost :
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 URL urlservlet = new URL("http://localhost:8080/imed/ImageMapServlet"); HttpURLConnection connExtension = (HttpURLConnection)urlservlet.openConnection(); FileInputStream in = new FileInputStream(image); in.read(tableauImage); in.close(); HttpURLConnection connImage = (HttpURLConnection)urlservlet.openConnection(); connImage.setDoInput(true); connImage.setDoOutput(true); connImage.setUseCaches(false); connImage.setRequestProperty("Content-Type","application/octet-stream"); DataOutputStream out = new DataOutputStream(connImage.getOutputStream()); out.write(tableauImage, 0, tableauImage.length); out.flush(); out.close();
Mais je n'arrive dedans! J'ai essayé avec la méthode doGet mais je ne rentre pas dedans non plus!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // Récupération du flux entrant java.io.DataInputStream dis = new java.io.DataInputStream(request.getInputStream()); dis.readFully(temp); dis.close(); // Ecriture du fichier image sur le serveur File cibleServeur = new File("/repertoire/nomfichier"); FileOutputStream fos = new FileOutputStream(cibleServeur); fos.write(temp); fos.close();
C'est bon j'ai résolu mon problème, en fait je ne savais pas que lorsqu'on envoyait des données par la méthode post, il fallait obligatoirement récupérer quelque chose avec l'applet! Du coup maintenant ça marche mais j'ai un autre problème, comment je pourrais faire pour envoyer en même temps que les données du fichier, le nom du fichier?? En fait, il m'envoie toujours un string null.
Je fais ça :
(Applet)
(servlet)
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 String nomFichier = pjtrans.getName(); URL urlservlet = new URL(Main.serveur+"TelechargerPJ"); HttpURLConnection connexion = (HttpURLConnection)urlservlet.openConnection(); connexion.setDoInput(true); connexion.setDoOutput(true); connexion.setUseCaches(false); connexion.setRequestMethod("POST"); connexion.setRequestProperty("Content-Type","application/octet-stream"); byte[] tableauPJ = new byte[(int)pjtrans.length()]; FileInputStream in = new FileInputStream(pjtrans); in.read(tableauPJ); in.close(); DataOutputStream out = new DataOutputStream(connexion.getOutputStream()); out.write(tableauPJ, 0, tableauPJ.length); out.flush(); out.close(); PrintWriter fluxsortie = new PrintWriter(connexion.getOutputStream(),true); fluxsortie.println(nomFichier); fluxsortie.close(); ObjectInputStream ois = new ObjectInputStream(connexion.getInputStream()); File fichier = (File)ois.readObject();
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 DataInputStream dis = new java.io.DataInputStream(req.getInputStream()); byte[] temp = new byte[req.getContentLength()]; dis.readFully(temp); dis.close(); BufferedReader requete = new BufferedReader(new InputStreamReader(req.getInputStream())); String fichier = requete.readLine(); // Ecriture du fichier sur le serveur File cibleServeur = new File("nomdudossier/"+fichier); FileOutputStream fos = new FileOutputStream(cibleServeur); fos.write(temp); fos.close(); File fichierae = new File("nomdudossier"+fichier); ObjectOutputStream reponse = new ObjectOutputStream(resp.getOutputStream()); reponse.writeObject(fichierae);
C'est bon en fait j'ai trouvé!
J'ai mis le nom du fichier dans le header :
et pour le récupérer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part connexion.setRequestProperty("Name",nomFichier);
Code : Sélectionner tout - Visualiser dans une fenêtre à part String fichier = req.getHeader("Name");
Partager