Problema com RMI

1 resposta
charleston10

Olá galera do GUJ,
estou com um problema que já faz um tempo que estou tentando resolver;

Tenho uma aplicação simples feito em RMI - Cliente/Servidor;
Meu servidor funciona tranquilo, mas o Cliente ao acionar método do servidor aparece um erro que não sei onde estou errando.

O seguinte erro aparece:
[color=red]Exception:java.rmi.NotBoundException: gRemote[/color]
Acredito que não esta conseguindo localizar meu registro do servidor que se chama gRemote.

Alguem poderia me ajudar, urgente ;]

Vai o código do meu cliente: Esse é método do meu cliente que faz chamar o método do meu servidor.
public void abrir(){
        
        String texto = jtCaminho.getText();

            try{                
                
                //abre rmi registro
                Runtime.getRuntime().exec("rmiregistry 1099");
                
                //caminho do servidor
                String URL_SERVER = "rmi://192.168.1.101/gRemote";

                //Cast do servidor
                mathInterface MI=(mathInterface)Naming.lookup(URL_SERVER);

                //Executa método do servidor
                texto = MI.abrir(texto);

                //Retorna mensgem ao usuario
                jtaStatus.setText("Comando enviado para abrir arquivo: \n"
                        + texto + " \n");
                    
            }catch(Exception ex){
                    System.out.println("Exception:"+ex);
            }
    }
Código do meu servidor: Acredito que o servidor não esta com problema; Saída do servidor: run: Iniciando Servidor... Criado registro: RegistryImpl[UnicastServerRef [liveRef: [endpoint:[192.168.1.101:1099](local),objID:[0:0:0, 0]]]] Servidor Funcionando
public class clsServidor extends UnicastRemoteObject implements mathInterface{

        public clsServidor() throws RemoteException{
                System.out.println("Iniciando Servidor...");
        }        

        public static void main(String args[]) throws IOException, InterruptedException{
            
            //URL do servidor
            String HOST_URL = "rmi://192.168.1.101/gRemote";
            
            //Cria objeto ms
            clsServidor ms = new clsServidor();
            
            //abre rmi registro
            Runtime.getRuntime().exec("rmiregistry 1099");           
            
            //Variavel reg referenciado pela classe Registry
            java.rmi.registry.Registry reg = null;

            /*
             * Cria registro caso nunca foi criado.
             * Ou
             * Pega o registro caso ele ja foi criado.
             */
            try{ 
                reg = java.rmi.registry.LocateRegistry.createRegistry(Registry.REGISTRY_PORT);  
                System.out.println("Criado registro: " + reg);
            }catch (Exception e) {
                System.out.println(e);                   
            }

            /*
             * Verifica se o registro já foi criado: NULL > não foi criado
             */
            if (reg == null) {
                try {
                    reg = java.rmi.registry.LocateRegistry.getRegistry();
                    System.out.println("Localizado registro: " + reg);                    
                } catch (Exception e) {
                    System.out.println(e);

                }
            }
           
           
            //Inicia servidor
            try{
                //LocateRegistry.getRegistry(Registry.REGISTRY_PORT);
                reg.rebind(HOST_URL, ms);               
                
                //Tempo para mostrar mensagem que o servidor foi iniciado
                Thread.sleep(3000);
               
                System.out.println("Servidor Funcionando");

            }catch(RemoteException e){
                System.out.println("Erro: "+ e.getMessage());
                System.exit(0);
            }

        }

1 Resposta

charleston10

Up!

Criado 20 de junho de 2012
Ultima resposta 21 de jun. de 2012
Respostas 1
Participantes 1