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]
