Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1

    Problema ObjectOutput/input Stream

    Ciao a tutti, questo è il mio primo post, quindi vi chiedo di essere clementi nel caso in cui sbagliassi qualcosa, avrei bisogno di un aiuto, sto sviluppando un applicazione client/server in java, avrei la necessistà che questo collegamento mi permetta di scambiare degli oggetti, ho usato la classe ObjectInputStream e ObjectOutputStream in questo modo

    Client
    codice:
    ObjectOutputStream versoServer;
    versoServer = new ObjectOutputStream(clientSocket.getOutputStream());
    versoServer.writeObject(p);   // p è un oggetto di una classe da me creata
    Server
    codice:
    ObjectInputStream objectInputStream;
    objectInputStream = new ObjectInputStream(socket.getInputStream());
    p = (Prenotazione)objectInputStream.readObject();
    in compilazione va tutto bene, ma in esecuzione mi da:

    java.lang.ClassNotFoundException
    at java.net.URLClassLoader$1.run(URLClassLoader.java: 202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.j ava:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:3 06)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:2 47)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at java.io.ObjectInputStream.resolveClass(ObjectInput Stream.java:603)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectI nputStream.java:1574)
    at java.io.ObjectInputStream.readClassDesc(ObjectInpu tStream.java:1495)
    at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1731)
    at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1328)
    at java.io.ObjectInputStream.readUnshared(ObjectInput Stream.java:440)
    at trainserver.TrainServer.run(TrainServer.java:31)
    Exception in thread "Thread-1" java.lang.NullPointerException
    at trainserver.TrainServer.run(TrainServer.java:40)


    Come posso risolvere???

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Il codice va formattato usando il tag [CODE]: qui ho provveduto io a farlo.

    Leggi il Regolamento di questa sezione per conoscere le norme da seguire.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3

    Re: Moderazione

    Originariamente inviato da alka
    Il codice va formattato usando il tag [CODE]: qui ho provveduto io a farlo.

    Leggi il Regolamento di questa sezione per conoscere le norme da seguire.
    scusa non avevo notato questa cosa!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Exception in thread "Thread-1" java.lang.NullPointerException
    at trainserver.TrainServer.run(TrainServer.java:40)
    questa è la tua causa, cosa c'è a quel punto?
    RTFM Read That F*** Manual!!!

  5. #5
    codice:
    p.stampaPrenotazione();
    praticamente mi dice che p è uguale a null, ma in teoria dovrebbe essere l'oggetto che ho inviato tramite lo stream.
    Ho provato anche a eliminare quella parte di codice per vedere cosa succedeva, ma l'errore in run time rimane (almeno quasi tutto)
    23-nov-2011 16.34.10 trainserver.TrainServer run
    GRAVE: null
    java.lang.ClassNotFoundException: trainclient.Prenotazione
    at java.net.URLClassLoader$1.run(URLClassLoader.java: 202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.j ava:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:3 06)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:2 47)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at java.io.ObjectInputStream.resolveClass(ObjectInput Stream.java:603)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectI nputStream.java:1574)
    at java.io.ObjectInputStream.readClassDesc(ObjectInpu tStream.java:1495)
    at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1731)
    at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1328)
    at java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:350)
    at trainserver.TrainServer.run(TrainServer.java:30)

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Problema ObjectOutput/input Stream

    Originariamente inviato da AceCracked
    sto sviluppando un applicazione client/server in java, avrei la necessistà che questo collegamento mi permetta di scambiare degli oggetti, ho usato la classe ObjectInputStream e ObjectOutputStream

    java.lang.ClassNotFoundException
    at java.net.URLClassLoader$1.run(URLClassLoader.java: 202)
    Vuol dire che la definizione della classe (dell'oggetto ricevuto) deve essere rintracciabile e caricabile anche su questo lato della tua architettura in cui ricevi gli oggetti.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Ecco allora come ti dice andbin controlla i classpath di server e client
    RTFM Read That F*** Manual!!!

  8. #8
    si ma infatti la classe è definita da entrambi i lati. sia nel progetto con il client sia in quello con il server

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    il classpath di esecuzione, non quello di compilazione (sono diversi in generale): devi controllare che la lib dove è contenuto il tuo oggetto Prenotazione sia nel classpath di esecuzione del server
    RTFM Read That F*** Manual!!!

  10. #10
    Originariamente inviato da valia
    il classpath di esecuzione, non quello di compilazione (sono diversi in generale): devi controllare che la lib dove è contenuto il tuo oggetto Prenotazione sia nel classpath di esecuzione del server
    potrebbe essere collegato anche al fatto che da linea di comando per quanto riguarda il server non mi trova la classe main(ovviamente sempre in esecuzione)??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.