IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Problème de desérialisation


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut Problème de desérialisation
    Bonjour,
    je voudrais envoyer un obj via les socket tcp ,et pour caj' utilse la serialisation
    mais l'obj sera serialiser mais dans l'autre cote il ne sera pas deserialiser
    pouvez-vous m'aider s'il vous plaît
    Merci

    voici mon code de serialisation;
    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
    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
    99
    100
    package serial_tchat;
    import java.net.*;
    import java.io.*;
     
    /**
    *
    * @author chocho
    */
     
    class Message implements Serializable {
    private int senderID;
    private String messageText;
     
    public Message(int id, String text) {
    senderID = id;
    messageText = text;
    }
    public String getText() {
    return messageText;
    }
    }
     
     
     
    public class Main {
     
    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) throws Exception{
    // TODO code application logic here
     
    Message sayhey = new Message(123456789, "Hello");
    System.out.println("s bon");
     
    Socket socket = new Socket("127.0.0.1", 12345);
    ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
     
    out.writeObject(sayhey);
     
     
    }
     
    }
     
     
    et le code de desiralisation est; (il me provoque un erreur);
     
     
     
     
    /*
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    */
     
    package server_serial;
    import java.io.*;
    import java.net.*;
    /**
    *
    * @author chocho
    */
     
     
     
    class Message implements Serializable {
    private int senderID;
    private String messageText;
     
    public Message(int id, String text) {
    senderID = id;
    messageText = text;
    }
    public String getText() {
    return messageText;
    }
    }
     
     
     
    public class Main {
     
    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) throws Exception {
    // TODO code application logic here
    ServerSocket ss=new ServerSocket(12345);
    Socket socket=ss.accept();
    System.out.append("attent sur le port ; 12345;");
    ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
    Message messageObject = (Message) in.readObject();
    String messageText = messageObject.getText();
     
     
     
    }
     
    }
    et voici l'exception qui se produit; ( dans le code se diserialisation)
    deps-jar:
    Compiling 1 source file to C:\Documents and Settings\chocho\Mes documents\NetBeansProjects\server_serial\build\classes
    compile-single:
    run-single:
    Exception in thread "main" java.lang.ClassNotFoundException: serial_tchat.Message
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    attent sur le port ; 12345;
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    at server_serial.Main.main(Main.java:42)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 17 seconds)

  2. #2
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    Il semblerait que ton serveur ne connaisse pas la classe serial_tchat.Message. Il faut que tu crées un jar avec cette classe et que tu l'ajoutes au classpath de ton application serveur.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut
    Citation Envoyé par hasalex Voir le message
    Il semblerait que ton serveur ne connaisse pas la classe serial_tchat.Message. Il faut que tu crées un jar avec cette classe et que tu l'ajoutes au classpath de ton application serveur.
    merci ,mais je ne comprend pas quest que tu idt!!! essai de m' expliquer.
    ainsi que jai trouver cette exemple sur internet .

  4. #4
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    Quand ton serveur reçoit un objet par socket, il doit connaître son type, sinon il ne peut pas le charger en mémoire. Pour connaître son type, c'est à dire sa classe, il faut que celle-ci soit dans le classpath.

    Si c'est la notion de classpath qui t'est étrangère, je te reverrai vers la FAQ.

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/06/2008, 18h58
  2. [XML] - Problème de desérialisation
    Par Anto03 dans le forum C#
    Réponses: 6
    Dernier message: 12/02/2008, 16h41
  3. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo