Estou fazendo um servidor RMI, dentro da rede do cliente funciona a comunicação entre a maquina cliente e o servidor.
O Problema que a maquina cliente ficara fora da rede e ira acessar pelo domino.dyndns.
Ele faz a conexão, mas não reconhece a função ler mensagem
Meu objeto
Proxy[Mensageiro,RemoteObjectInvocationHandler[UnicastRef [liveRef: [endpoint:dominio.dyndns-office.com:1043:35645,objID:[60fe353c:17015be3dcf:-7fff, 7510163254941963883]]]]]
Nesta caso da o erro:
RemoteException: java.rmi.UnknownHostException: Unknown host:dominio.dyndns-office.com:1043;
Codigo do meu servidor
public class MensageiroServer {
public MensageiroServer() {
try {
Mensageiro m = new MensageiroImpl();
Naming.rebind(“rmi://localhost:1098/MensageiroService”, m);
System.out.println( "subiu servidor rmi no host: " + InetAddress.getLocalHost().getHostName() );
}
catch( Exception e ) {
System.out.println( "Trouble: " + e );
}
}
public static void main(String[] args) {
Registry registry = null;
try{
System.setProperty("java.rmi.server.hostname", "dominio.dyndns-office.com:1043");
System.setProperty("sun.rmi.transport.connectionTimeout", "50000");
registry = LocateRegistry.createRegistry(1098);
registry = LocateRegistry.getRegistry("dominio.dyndns-office.com:1043",1098);
System.out.println(registry);
}catch (Exception e2) {
e2.printStackTrace();
System.err.println("Registro não pode ser inicializado:"+e2.getMessage());
System.exit(0);
}
new MensageiroServer();
}
}
Meu cliente
public class MensageiroClient {
public MensageiroClient() {
// TODO Auto-generated constructor stub
}
public static void main( String args[] ) {
try {
Mensageiro m = (Mensageiro) Naming.lookup( "rmi://dominio.dyndns-office.com:1043/MensageiroService" );
// o erro ocorre na linha abaixo
System.out.println( m.lerMensagem() );
m.enviarMensagem(“Hello World”);
}
catch( MalformedURLException e ) {
System.out.println();
System.out.println( "MalformedURLException: " + e.toString() );
}
catch( RemoteException e ) {
System.out.println();
System.out.println( "RemoteException: " + e.toString() );
}
catch( NotBoundException e ) {
System.out.println();
System.out.println( "NotBoundException: " + e.toString() );
}
catch( Exception e ) {
System.out.println();
System.out.println( "Exception: " + e.toString() );
}
}
}