Pessoal, ja tentei várias solucoes de outros tópicos e nao consigo descobrir o pq dessa Exception, vou mostrar abaixo a estrutura q tenho e em seguida a Exception
Fiz no netbeans um projeto da aplicacao servidor. Abaixo as classes e códigos que interessampublic interface InterfaceCliente extends Remote {
public void cadastrarUsuarioNovo(Usuario usuario) throws RemoteException;
}
public interface InterfaceServidor extends Remote {
public int soma(int a, int b) throws RemoteException;
public int diminui(int a, int b) throws RemoteException;
}
public class InterfaceServidorImp implements InterfaceServidor, Serializable {
public InterfaceServidorImp() throws RemoteException {
super();
}
public int soma(int a, int b) throws RemoteException {
return a + b;
}
public int diminui(int a, int b) throws RemoteException {
return a - b;
}
}
public TelaInicial() {
try {
initComponents();
System.setSecurityManager (new RMISecurityManager() {
public void checkConnect (String host, int port) {}
public void checkConnect (String host, int port, Object context) {}
});
InterfaceServidor servico = new InterfaceServidorImp();
Registry registro = LocateRegistry.createRegistry(1098);
registro.bind("servicosRemotos", servico);
} catch (Exception ex) {
ex.printStackTrace();
new ExibirExcessao(null, true, ex).setVisible(true);
}
}
public interface InterfaceCliente extends Remote {
public void cadastrarUsuarioNovo(Usuario usuario) throws RemoteException;
}
public class InterfaceClienteImp implements InterfaceCliente,Serializable {
public InterfaceClienteImp() throws RemoteException {}
public void cadastrarUsuarioNovo(Usuario usuario) throws RemoteException {}
}
public interface InterfaceServidor extends Remote {
public int soma(int a, int b) throws RemoteException;
public int diminui(int a, int b) throws RemoteException;
}
public TelaInicial() {
try {
initComponents();
System.setSecurityManager (new RMISecurityManager() {
public void checkConnect (String host, int port) {}
public void checkConnect (String host, int port, Object context) {}
});
InterfaceCliente servicosCliente = new InterfaceClienteImp();
Registry registroLocal = LocateRegistry.createRegistry(1099);
registroLocal.bind("servicosLocais", servicosCliente);
int a = 5;
int b = 5;
Registry registroRemoto = LocateRegistry.getRegistry(ipServidor, 1098);
InterfaceServidor servicosRemotos = (InterfaceServidor)registroRemoto.lookup("servicosRemotos");
int resultadoSoma = servicosRemotos.soma(a, b);
int resultadoSubtracao = servicosRemotos.diminui(a, b);
System.out.println("soma: " + resultadoSoma + "\nsubtracao: " + resultadoSubtracao);
} catch (Exception ex) {
ex.printStackTrace();
new ExibirExcessao(null, true, ex).setVisible(true);
}
}
java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: java.io.EOFException at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:209) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:359) at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) at TelaInicial.Só pra deixar mais claro, a linha "at TelaInicial.(TelaInicial.java:45) at Main.main(Main.java:46) Caused by: java.io.EOFException at java.io.DataInputStream.readByte(DataInputStream.java:250) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:195) ... 4 more