Ola pessoal, estou tentando criar um simples sistema RMI mais estou com algums problemas, o cliente não consegue conectar com o servidor, segue os codigos, agradeço desde já
classe vez
package rmi;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class vez extends UnicastRemoteObject implements vezInterface{
int jogador = 1;
public vez() throws RemoteException {
}
public int getJogador() throws RemoteException {
return jogador;
}
public void setJogador(int jogador) throws RemoteException {
this.jogador = jogador;
}
}[/code]
interface vezInterface
[code]package rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface vezInterface extends Remote {
public int getJogador() throws RemoteException;
public void setJogador(int jogador) throws RemoteException;
}
Servidor
[code]package rmi;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Server {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
vez vez = new vez();
Registry r = LocateRegistry.createRegistry(1099);
r.rebind("vez", vez);
//System.out.print(LocateRegistry.getRegistry());
System.out.println(vez.getJogador());
System.out.println("Aguardando requisições...");
}
}
[/code]
na parte do cliente tenho o seguinte:
vezInterface
[code]package Principal;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface vezInterface extends Remote {
public int getJogador() throws RemoteException;
public void setJogador(int jogador) throws RemoteException;
}
[/code]
Cliente
package Principal;
import java.awt.EventQueue;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.rmi.Naming;
import javax.swing.JOptionPane;
public class start {
public static void main(String[] args) throws Exception{
vezInterface vez = (vezInterface)Naming.lookup("rmi://localhost:1099/vez");
System.out.println(vez.getJogador());
}
}
O servidor tem o seguinte arquivo de segurança server.policy
[code]grant { permission java.security.AllPermissions; permission java.net.SocketPermission"*", “connect, resolve”;
};[/code]
O servidor executa sem problemas, porem quando executo o cliente recebo o seguinte erro:
Daemon System Thread [RMI TCP Connection(idle)] (Suspended (exception AccessControlException))
ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: not available
ThreadPoolExecutor$Worker.run() line: not available
Thread.run() line: not available
java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.io.EOFException
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Unknown Source)
...
Alguem pode ajudar por favor. Obrigado