Problema com RMI

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.

[code]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);
        }
}[/code]

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,objID:[0:0:0, 0]]]]
Servidor Funcionando

[code]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);
        }

    }[/code]

Up!