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]