Interface Mensageiro
import java.rmi.Remote; import java.rmi.RemoteException;
/** * Interface com os metodos do servidor. * @author Robson Alves */
public interface Mensageiro extends Remote {
public void EscreverMensagem(String str) throws RemoteException;
public String LerMensagem() throws RemoteException; }
Class MensageiroImpl
/** * Implementa as regras da interface * @author Robson Alves */
import java.rmi.AlreadyBoundException; import java.rmi.RemoteException;
public class MensageiroImpl extends RemoteException implements Mensageiro {
public static void main (String[] args) throws RemoteException, AlreadyBoundException { new Servidor();
} public void EscreverMensagem(String str) throws RemoteException { System.out.println(str); }
public String LerMensagem() throws RemoteException { return "Sou Java"; }
}
Classe Servidor
/** * Servidor * @author Robson Alves */
import java.net.MalformedURLException; import java.rmi.AlreadyBoundException; import java.rmi.Naming; import java.rmi.RemoteException;
public class Servidor {
public Servidor() throws RemoteException, AlreadyBoundException { try { Mensageiro m = new MensageiroImpl(); Naming.rebind("//Localhost:1099/MensageiroServico", m); } catch (Exception e) { System.out.println(e.getLocalizedMessage()); } }
public static void main(String[] args) throws RemoteException, AlreadyBoundException, MalformedURLException { new Servidor(); } }
Classe Cliente
import java.io.IOException; import java.rmi.NotBoundException; import java.rmi.Naming; import java.rmi.RemoteException; import java.net.MalformedURLException;
/** * * @author Robson Alves */ public class Cliente {
public static void main(String[] args) throws NotBoundException, MalformedURLException, IOException { try { Mensageiro m = (Mensageiro) Naming.lookup("//localhost:1099/MensageiroServico"); String x = m.LerMensagem(); System.out.println(x); m.EscreverMensagem("Acessando e Enviando Mensagem"); System.out.println(m.LerMensagem()); } catch (RemoteException ex) { System.out.println(ex.getMessage()); }
}
}
Agora para criar o Stub da class de implementação, você deve ir ao DOS ( Control+R –> CMD ).
Encontre o endereço da classe de implementação no seu Windows (Geralmente ele fica em build / classes ) e digite no dos:
rmic CAMINHO DA CLASSE
Não se Esqueça de remover a extensão da Classe .class
Logo ele irá gerar a classe, MensageiroImpl_Stub.class
Agora para gerar o servidor, digite no Dos
rmiregistry
O dos ficará congelado, agora vá até a aplicação e rode primeiramente a classe servidor e em seguida a classe Client.
No output do netbeans irá apresentar o resultado dos metodos.
|