Rmi

4 respostas
B

oi pessoal, eu tentei utilizar a tecnica RMI e estou parado no seguinte erro:

Exception in thread “main” java.lang.NoClassDefFoundError: Registar

Esse erro aparece ao fazer:
#java Registar

e dp de ter feito:
#rmic TesteServer
#rmiregistry -J-Djava.security.policy=Registo.policy

Pq nao encontra o “main”? Estes ficheiros tem de estar dentro de um projecto? tou usando jBuilder9
Tenho de definir o porto no localhost?
Alguem pode me ajudar?

Tenho os seguintes ficheiros:

TesteRMIServer:

import java.io.*;
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.RemoteException;

public class TesteRMIServer extends UnicastRemoteObject implements TesteRMIInterface{

  public TesteRMIServer() throws RemoteException {
    super(); //Exporta o objecto
  }

  public String MetodoRemoto() throws java.rmi.RemoteException{
    return "Método Remoto Executado";
  }
}

TesteRMIInterface:

public interface TesteRMIInterface extends java.rmi.Remote{
  public String MetodoRemoto() throws java.rmi.RemoteException;
}

TesteRMIClient:

import java.rmi.*;

public class TesteRMIClient {

  public TesteRMIClient(){
  }

  public static void main(String[] args){
    if (System.getSecurityManager()==null){
      System.setSecurityManager(new RMISecurityManager());
    }
    try{
      TesteRMIInterface objecto=(TesteRMIInterface)Naming.lookup("/TesteRMIServer");
      String msg=objecto.MetodoRemoto();
      System.out.print(msg);
    }catch (Exception e){
      System.out.print("Teste RMI client Exception"+e);
    }
  }
}

Registo.policy:

grant{
permission java.security.AllPermisson;
};

Registar:

public class Registar{

  public Registar(){
  }

  public static void main(String[] args){
    try{
      TesteRMIServer objecto = new TesteRMIServer();
      System.out.print("Objecto inicializado: "+objecto);
      Naming.rebind("/TesteRMIServer", objecto);
      System.out.print("TesteRMIServer inscrito no registo");
  }catch (Exception e){
    System.out.println(e.getMessage());
  }
}
}

[color=“red”]Editado para conter o BBDCode CODE - jeveaux[/color]

4 Respostas

J

Oi

brnzck, tu é de Portugal cara???

Olha, antes de qualquer coisa, este arquivos, inclusive os de polocy estã no mesmo diretório??? Outra coisa, tu ta compilando as classes antes de fazer o rmic e o rmiregistty???

T+

B

oi, sou de Portugal.

Este portal é mto bom.

Esta tudo a funcionando bem, o problema era a compilação de um ficheiro ficou mal feita.

Brigado!! :slight_smile:

J

Oi

brnzck, seja muito vindo ao Portal Java, é sempre bom ver gente nova por aqui, ainda mais quando é de outro país… Espero que goste do Portal Java…

Olha, tenta mudar aí no teu código a linha de Registar onde está assim:

System.out.print("Objecto inicializado: "+objecto);

Coloque assim:

System.out.print("Objecto inicializado: "+objecto.MetodoRemoto());

Em todo caso, se não der certo, eu aconselho que tu de uma lida no tutorial de RMI abaixo e tente fazer o exemplo que está no tutorial…

http://www.portaljava.com/home/modules.php?name=Content&pa=showpage&pid=8

T+

M

Portal Java ta internacional! haehaea shoow, daqui uns dia tem até japa postando ahehaehae

:dance: :dance: :dance: :dance: :dance:

Criado 30 de março de 2004
Ultima resposta 31 de mar. de 2004
Respostas 4
Participantes 3