tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
302
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    d4ex d4ex ist offline Mitglied
    Registriert seit
    Dec 2007
    Beiträge
    14
    Hallo!

    Wie oben schon beschrieben habe ich ein Problem mit der Serialisierung eines Objectes.
    Ich möchte gerne ein Object von einem Client zum Server senden. Das ganze funktioniert auch... bis auf ein Problem. Client und Server befinden sich in unterschiedlichen Packages...

    Wenn ich das richtig verstanden hab muss ja, die Klasse die man über den ObjectStream versenden will, dem Server und der Clientversion zur Verfügung stehen und das Interface Serializable eingebunden haben.
    Mein Client konnte die Klasse auch Serialisieren und sie zum Server senden. Doch als der Sie empfangen hat gabe es eine ClassNotFoundException (package des Clients).class not found...

    Strings oder andere Primitive Datentypen kann ich versenden nur eben Klassen nicht...

    Jemand ne Idee wie ich das beheben kann?
    Schon mal Danke für die Hilfe
     

  2. #2
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Was fliegt denn für eine Exception? Implementiert die zu übertragende Klasse Serializable? Hat die Klasse eine serializableUId?

    REINHAUN!
     

  3. #3
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    hast du die Klassen der vom Client serialisierten Objekte auch ganz sicher auf dem Server im Classpath verfügbar?

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  4. #4
    d4ex d4ex ist offline Mitglied
    Registriert seit
    Dec 2007
    Beiträge
    14
    Es funktioniert nun... aber irgendwie nicht so wie ich es gerne gewollt hätte

    Ich habe eine Klasse "SendObject" (die soll Serialisiert und versendet werden Inhalt is ja nich wichtig...das interface ist implementier )
    Diese Klasse steht im package messu_client und im package messu_server zur Verfügung.
    Das Versenden der Klasse ist kein Problem, doch wenn ich sie wieder auspacken will muss das ganze so aussehen... (nur ein Auzug)

    package messu_server;

    import java.net.*;
    import java.io.*;
    //Der import aus einer zur Verfügung gestellten .jar - File
    import messu_client.SendObject;
    ...

    InputStream in = socket.getInputStream();

    ObjectInputStream os = new ObjectInputStream(new BufferedInputStream(in));
    Object o = os.readObject();

    if(o instanceof messu_client.SendObject){
    SendObject obj = (messu_client.SendObject)o;
    System.out.println(obj.toString());
    }

    So... um es kurz zu erklären... ich stelle hier dem Server das package des clients in einer .jar Datei zur Verfügung damit der sich aus diesem package die messu_client.SendObject Klasse nehmen kann. Funktioniert auch, ist aber umständlich finde ich.
    Die Klasse SendObject befindet sich nämlich auch im package des Servers (messu_server.SendObject) aber die beiden sind nicht kompatibel... verstehe nicht warum sind ja die selben Klassen... nur das package stört...
    Gehts anders? Oder muss ich es einfach so hinnehmen? Dann muss ich nämlich immer die Klasse des clients mitschleifen...

    Nochmal Danke für die Hilfe es funktioniert ja aber man macht sich halt so seine Gedanken :>

    mfg
    Matthias
     

  5. #5
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Wie kann denn eine Klasse in zwei packages sein? Normalerweise geht man her und packt zentrale Datentypen und Interfaces in ein JAR das sowohl Server als auch Client benutzen.

    Gruß
    Ollie
     

  6. #6
    d4ex d4ex ist offline Mitglied
    Registriert seit
    Dec 2007
    Beiträge
    14
    So hab ich es ja jetzt auch gemacht Nu brauch ich die Klasse eben nur noch einzubinden. War halt nur so das ein und die selbe Klasse in zwei unterschiedlichen packages war und beide nicht "gleich" waren.

    *edit* Du hast aber recht, wenn ich darüber nachdenke was noch alles ins Project reinsoll ist es natürlich sinnvoller ein eigenes Package zu haben
    Geändert von d4ex (07.03.08 um 11:40 Uhr)
     

  7. #7
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Vor allem in ein eigenes Jar. Ist ganz hilfreich wenn man ab und zu mal über die Abhängigkeiten nachdenkt, die man so in seinem Projekt hat

    REINHAUN!
     

Ähnliche Themen

  1. Antworten: 17
    Letzter Beitrag: 11.05.09, 20:21
  2. Problem beim serialisieren von komplexen Objekten (v.A. GregorianCalendar)
    Von schneemensch im Forum Algorithmen & Datenstrukturen mit Java
    Antworten: 5
    Letzter Beitrag: 26.07.07, 08:14
  3. Fehlermeldung beim Serialisieren
    Von mistirios im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 22.07.07, 17:47
  4. Fehlermeldung beim Serialisieren
    Von Schnacki im Forum Java
    Antworten: 1
    Letzter Beitrag: 10.03.07, 18:23
  5. Verzweiflung beim Serialisieren
    Von fh_study im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 22.02.05, 13:49