Caros,Boa Tarde,
Estou começando a ver cliente-servidor java e estou com um problema, basei minha aplicação em uma apostila que achei na net, mais não estou conseguindo pegar um objeto do servidor,quando executo, cai na exceção ClassNotFoundException no cliente,e eu tenho a classe pessoa tanto no pacote cliente e servidor, pelo o que eu entendi as duas classes tem que estar implementadas tanto no pacote cliente e servidor,correto?
[code]
package cliente;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import cliente.Pessoa;
/**
*
-
@author aramis
*/
public class Main {/**
-
@param args the command line arguments
*/
public static void main(String[] args) throws IOException, ClassNotFoundException {
// TODO code application logic here
try{
Socket cliente = new Socket(“localhost”, 5050);
Pessoa pessoa = new Pessoa();
ObjectInputStream oin = new ObjectInputStream(cliente.getInputStream());
pessoa = (Pessoa)oin.readObject();
System.out.println(“Pessoa Obtido do servidor!”);
pessoa.imprimie();
//fecha canal de recebimento
oin.close();
//fecha cliente
cliente.close();
//Erro no host…
}catch(UnknownHostException e)
{
System.out.println(“Servidor fora do ar ou não existe!”);
}
catch(IOException e)
{
System.out.println(“Erro de entrada e saída!”);
}
catch(ClassNotFoundException e)
{
System.out.println(“A classe pessoa não está presente no Cliente!”);
}
}
-
@param args the command line arguments
}
package servidor;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.BindException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
/**
*
* @author aramis
*/
public class Main {
private static ArrayList<Pessoa> pessoa;
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException, ClassNotFoundException {
//Criando uma coleção de pessoas
pessoa = new ArrayList<Pessoa>();
pessoa.add(new Pessoa("Aramis",24));
pessoa.add(new Pessoa("Ariel",22));
pessoa.add(new Pessoa("André",26));
try{
//Criando servidor
ServerSocket serverSocket = new ServerSocket(5050);
//esperando conexão
Socket socket = serverSocket.accept();
//servidor processa conexãp
processaConexão(socket);
}catch(BindException e){
System.out.println("Porta está em uso..");
}catch(IOException e){
System.out.println("Erro de entrada ou saída de dados...");
}
}
private static void processaConexão(Socket socket) {
try{
//canal de envios de ados
ObjectOutputStream oin = new ObjectOutputStream(socket.getOutputStream());
//Escolhe uma pessoa aleatoriamente
int escolhida = (int)(Math.random()*pessoa.size());
oin.writeObject(pessoa.get(escolhida));
//fecha o canal de envio
oin.close();
//fecha socket
socket.close();
//erro de entrada ou saída...
}catch(IOException e){
System.out.println("Erro de atendimento a conexão...");
}
}
}
import java.io.Serializable;
/**
*
* @author aramis
*/
public class Pessoa implements Serializable{
private String nome;
private int idade;
Pessoa(String nome, int idade) {
this.nome = nome;
this.idade = idade;
}
Pessoa() {
}
public void imprimie(){
System.out.println("Nome: "+nome+"Idade: "+idade);
}
/**
* @return the nome
*/
public String getNome() {
return nome;
}
/**
* @param nome the nome to set
*/
public void setNome(String nome) {
this.nome = nome;
}
/**
* @return the idade
*/
public int getIdade() {
return idade;
}
/**
* @param idade the idade to set
*/
public void setIdade(int idade) {
this.idade = idade;
}
}
Desde já agradeço a ajuda!