Bonsoir,

j'ai un petit problème avec la sérialisation. Savez-vous à quoi peut être du ce problème ?

voici un bout de la stack
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2502)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1267)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
at depouilleuroli.ServletLisFichier.doPost(ServletLisFichier.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
En fait, mon applet crée un fichier, et je voudrais ensuite le renvoyer vers une servlet qui s'occuperait de le copier dans un répertoire adéquat sur le disque de mon serveur.

Voici le code qui envoie le fichier depuis l'applet vers la 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
22
23
 
private boolean serializeToServlet(File xml) {
    boolean pass = false;
 
    try {
      URL url = new URL(getDocumentBase(), "ServletLisFichier");
      URLConnection connexion = url.openConnection();
 
      connexion.setDoOutput(true);
 
      ObjectOutputStream oos = new  ObjectOutputStream(connexion.getOutputStream());      
      oos.writeObject(xml);
 
      BufferedReader br = new BufferedReader(new InputStreamReader(connexion.getInputStream()));
      String answer = br.readLine();
      pass = "OK".equals(answer);
    } catch (Exception e) {
      pass = false;
      e.printStackTrace();
    }
 
    return pass;
  }
et ici le code de la servlet qui doit récupérer le fichier
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
 
protected void doPost(HttpServletRequest request,
      HttpServletResponse response) throws IOException {
      ObjectInputStream ois = new  ObjectInputStream(request.getInputStream());
 
      Object o = null;
 
      try {
        o = ois.readObject();  // <<---- EOFException ici
      } catch (ClassNotFoundException e) {
        e.printStackTrace();
      }
 
      PrintWriter pw = new PrintWriter(response.getOutputStream());
      pw.println("OK");
      pw.close();
      ois.close();
 
      // ...
    }
le problème ne vient apparament pas de ma config Tomcat ou quoi que ce soit d'autre. Il semble vraiment que cela soit lié à la sérialisation

est-ce que quelqu'un sait ce qui se passe et pourrait me l'expliquer ?