Foro de elhacker.net

Programación => Java => Mensaje iniciado por: nerckos en 28 Abril 2010, 17:52 pm



Título: Sockets
Publicado por: nerckos en 28 Abril 2010, 17:52 pm
Buenas tardes a todos  ;D. La question esque tengo una duda con lo que respecta a el envio de objetos a traves de un socket. Utilizo el ObjectInputStream y el ObjectOutputStream para enviar y recibir, pero me salta la excepcion.

Aqui os pongo la clase que instanciada deseo pasar:

Código:
class DatosUsuario implements java.io.Serializable{

    private String user;
    private char[] pass;

    public DatosUsuario(String user, char[] pass){
        this.user=user;
        this.pass=pass;
    }

    public DatosUsuario(DatosUsuario a){
        this.pass=a.pass;
        this.user=a.user;
    }

    public String getUser(){
        return user;
    }

    public char[] getPass(){
        return pass;
    }
}

Pero cuando intento hacer un writeObject me arroja el error: java.lang.ClassNotFoundException

Gracias de antemano.


Título: Re: Sockets
Publicado por: sapito169 en 28 Abril 2010, 18:46 pm
no uses sockets usa rmi te ase esas cosas muy faciles


Título: Re: Sockets
Publicado por: Chuidiang en 29 Abril 2010, 20:42 pm
Hola:

¿Dónde te salta la excepción? ¿en el write o al hacer el read de ese Object en el otro lado?

En el lado del write no lo entiendo, porque no debería haber ese tipo de problemas. Si es en el read(), es posible que no hayas puesto la clase que vas a recibir en el classpath de ese ejecutable que recibe.

Se bueno.


Título: Re: Sockets
Publicado por: nerckos en 30 Abril 2010, 17:13 pm
Los streams me los coge bien, me salta la exception cuando intento leer el objecto.


Título: Re: Sockets
Publicado por: Chuidiang en 30 Abril 2010, 17:47 pm
Pues lo dicho, posiblemente en la parte del ejecutable que lee no esté esa clase en el classpath.

Se bueno.


Título: Re: Sockets
Publicado por: nerckos en 30 Abril 2010, 22:27 pm
Podrias explicarte un poco mejor.....


Título: Re: Sockets
Publicado por: Chuidiang en 1 Mayo 2010, 06:46 am
Tienes dos ejecutables java, uno es el que envía y otro el que recibe. La clase que envías de un lado a otro es un .class. Pues bien, ese .class tiene que estar en el classpath de ambos ejecutables.

Concretando más, si has hecho, por ejemplo, dos proyectos de eclipse/netbeans, uno para el ejecutable que envía y otro para el ejecutable que recibe, la clase que envías debe estar en ambos proyectos.

Si no está en el proyecto del que escribe, pues simplemente no compilaría, no puedes hacer new de esa clase para enviarla, ya que no está en el proyecto, es como si no existiera.

Si no está en el proyecto que recibe, depende como lo hagas, sí puede compilar, pero en ejecución, cuando el socket la intente leer, no pordrá reconstruirla, porque no tiene esa clase por ningún lado y el error, en tiempo de ejecución, será ClassNotFound.

Se bueno.


Título: Re: Sockets
Publicado por: Debci en 1 Mayo 2010, 11:47 am
Chuidiang el grande nos asiste!
Que sepas que sigo todos tus tutos y articulos!


Saludos


Título: Re: Sockets
Publicado por: Chuidiang en 1 Mayo 2010, 14:54 pm
bueno, bueno, que me voy a poner colorao  :P  ....

Se bueno.


Título: Re: Sockets
Publicado por: nerckos en 2 Mayo 2010, 21:31 pm
Gracias por tu respuesta.