Pessoal estou desenvolvendo uma aplicaçao e gostaria de um auxilio. A minha duvida é o seguinte tenho as classes abaixo.
Interface Servico
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Servico extends Remote {
public Carro getCarro()throws RemoteException;
public void setCarro (Carro carro)throws RemoteException;
}
Implementando o Servico
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class ServicoCarroImpl extends UnicastRemoteObject implements Servico {
private Carro carro;
public ServicoCarroImpl() throws RemoteException {
System.out.println("Servico On-Line");
}
public Carro getCarro() {
return this.carro;
}
public void setCarro(Carro carro) throws RemoteException {
this.carro= carro;
}
public static void main(String[] args) {
try {
Servico servico = new ServicoCarroImpl();
Naming.rebind("Carro", servico);
} catch (Exception e) {
e.printStackTrace();
}
while(true);
}
}
Servidor
public class Servidor implements Serializable {
public static void main(String[] args) {
try {
Servico servico = (Servico) Naming.lookup("rmi://127.0.0.1/Carro");
servico.setCarro(new Carro());
System.out.println("Servidor On-line");
} catch (Exception e) {
e.printStackTrace();
}
while(true);
}
}
Cliente
import java.rmi.Naming;
public class Cliente{
public static void main(String[] args) {
try {
Servico servico = (Servico) Naming.lookup("rmi://127.0.0.1/Carro");
Carro carro = servico.getCarro();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Galera a minha dúvida é o seguinte, tenho a classe servidor que crio um objeto carro, e adiciono esse objeto carro setCarro do servico bind. Subo a aplicaçao ele faz todo procedimento correto, mas ao abrir outro Cliente vejo que a referencia do objeto carro do cliente 1 e diferente do cliente 2. Preciso que varios clientes compartilham o mesmo objeto. Mas da forma que implementei cada novo cliente abro vem com uma referencia diferente
Abraços,
Galera