Problemas com " input.readObject();"

4 respostas
G

Galera, to mexendo com redes aqui. É o seguinte :

Quando eu rodo o client, ele se conecta ao servidor perfeitamente. O servidor é multithread então consigo conectar vários clientes.
Na interface client eu entro com algumas informações, por ex : Nome do Aluno, Idade do Aluno.

Eu tenho uma classe Aluno, então é criado um objeto -> Aluno al = new Aluno(nome,idade) ;
Após isso utilizo o método sendData(al), para o servidor poder ler/pegar essas informações, claro fazendo “output.writeObject(al)”.

Acontece que no servidor, quando eu vou processar a conexão, eu crio um outro objeto Aluno al = ("",""), instancio ele com al = (Aluno) input.readObject() ;, mas nao funciona.

Pq isso não da certo ? Se eu mandar uma string no sendData (método que está no Cliente), e ler uma String dá certo.
Eu queria pegar o objeto Aluno, assim posso usar os getters and setters da classe Aluno.

Alguem pode me ajudar ?

4 Respostas

T

Eu já vi um problema semelhante a esse em que as classes Aluno eram diferentes no cliente e no servidor, portanto não podiam ser instanciadas no lado do servidor.
O fonte deve ser exatamente igual (inclusive os packages têm de ser os mesmos).

G

No meu caso a classe Aluno, está no mesmo pacote do Cliente e do Servidor.

É 1 pacote, com as 3 classes. Não entendi direito, isso seria um possível problema ?

T

“Não funciona” quer dizer o quê? Ele dá um “ClassCastException” do tipo “Aluno can not be cast to Aluno” ou coisa parecida?

G

Exatamente …

Exception in thread "pool-1-thread-1" java.lang.ClassCastException: java.lang.String cannot be cast to teste.Aluno
	at deitel.Cliente.processaConexao(Cliente.java:132)
	at deitel.Cliente.run(Cliente.java:54)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Criado 5 de dezembro de 2008
Ultima resposta 5 de dez. de 2008
Respostas 4
Participantes 2