Problème de sérialisation
Je dois faire une communication entre une applet et une servlet, j'ai donc créé une classe transmission qui est sérialisable.
Seulement au moment de la création de l'objectInputStream dans l'applet j'ai une exception : java.io.StreamCorruptedException : invalid stream header.
J'ai tenté de mettre en commentaire le buffer d'écriture (ObjectOutputStream), pour voir si c'était interdit d'avoir 2 stream, mais l'erreur est toujours là.
Je ne vois pas où peut être l'erreur, merci d'avance pour votre aide.
Voila mon code (la ligne d'erreur est au milieu) :
Code:
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
| URLConnection connexion = null;
TransmissionReponse transReponse = null;
try{
urlServlet = new URL("http://adresseServlet");
connexion = urlServlet.openConnection();
connexion.setDoOutput(true);
//récupération du loginNT de la personne
String strLoginNT = System.getProperty("user.name");
//transmission de la requete
ObjectOutputStream bufferEcriture = new ObjectOutputStream(connexion.getOutputStream());
TransmissionRequete transRequete = null;
transRequete = new TransmissionRequete("AUTH", "SELECT * FROM UTILISATEURS WHERE LoginNT='"+strLoginNT+"'", (String)(this.ihm.getFrame().getPnlAuthentification()).getListeBases().getSelectedValue());
bufferEcriture.writeObject(transRequete);
//reception de la réponse
ObjectInputStream bufferLecture = new ObjectInputStream(connexion.getInputStream()); //ERREUR ICI
transReponse = (TransmissionReponse)bufferLecture.readObject();
//vérification de l'absence d'erreur
if (transReponse.getMessage().equals("OK")==false){
JOptionPane.showMessageDialog(this.getIhm().getFrame(), transReponse.getMessage().toString(), "Erreur", JOptionPane.ERROR_MESSAGE);
}
//vérification que le nom était dans la base
return true;
}
catch(IOException erreur){
JOptionPane.showMessageDialog(this.getIhm().getFrame(), erreur.toString(), "Erreur", JOptionPane.ERROR_MESSAGE);
return false;
} catch (ClassNotFoundException erreur) {
JOptionPane.showMessageDialog(this.getIhm().getFrame(), erreur.toString(), "Erreur", JOptionPane.ERROR_MESSAGE);
return false;
} |