Boa tarde, alguém sabe como faço para definir a propriedade do sistema java.rmi.server.hostname com o número do meu ip servidor?
Estou com um problema de conexão usando o RMI e no site RMI FAQ no item A1 está escrito o seguinte:
Como devo fazer isso?
É dentro o meu código fonte ou é um comando que devo digitar antes de executar o servidor, vocês poderiam me dar algum exemplo?
java -Djava.rmi.server.hostname=______ … outras opções … NomeDaClasse
R
robgeek
Devo fazer isto dentro da pasta onde testa o código fonte antes de iniciar o servidor?
O nome da classe principal é MensageiroServer então o comando ficaria assim?
Boa pergunta, não sei como é que você inicia sua aplicação. Só sei que o comando deve incluir a opção -D.
R
robgeek
Inicio chamando a minha classe main que se chama MensageiroServer, no terminal eu entro na pasta onde tenho todos os arquivos compilados e digito?
"$ java MensageiroServer"
Agora tentei digitar o seguite:
"$ java -Djava.rmi.server.hostname=192.168.1.100 MensageiroServer" e apareceu a seguinte exceção:
Erro no servidor: java.rmi.ConnectIOException: Exception creating connection to: 192.168.1.100; nested exception is:
java.net.NoRouteToHostException: No route to host
Vou postar aqui o que coloquei no computador que irá ser o srvidor:
importjava.rmi.Remote;importjava.rmi.RemoteException;publicinterfaceInter_MensageiroextendsRemote{voidenviarMensagem(Stringmsg)throwsRemoteException;StringlerMensagem()throwsRemoteException;}*********************************************************************************importjava.rmi.RemoteException;importjava.rmi.server.UnicastRemoteObject;publicclassImpl_MensageiroextendsUnicastRemoteObjectimplementsInter_Mensageiro{publicImpl_Mensageiro()throwsRemoteException{super();}@OverridepublicvoidenviarMensagem(Stringmsg)throwsRemoteException{System.out.println(msg);}@OverridepublicStringlerMensagem()throwsRemoteException{return"Ola mundo meu ovo!";}}*********************************************************************************importjava.rmi.Naming;importjava.rmi.registry.LocateRegistry;publicclassMensageiroServer{publicstaticvoidmain(String[]args){try{Impl_Mensageirom=newImpl_Mensageiro();LocateRegistry.createRegistry(1099);Naming.bind("//192.168.1.100/MensageiroService",m);System.out.println("Servidor no ar.");}catch(Exceptione){System.out.println("Erro no servidor: "+e);}}}*********************************************************************************
E aqui o que coloquei no computador onde irá rodar o cliente:
*********************************************************************************//Mesma interface que tenho no computador servidor.*********************************************************************************//Mesma classe que implementa a interface que tenho no computador servidor.*********************************************************************************importjava.rmi.RemoteException;importjava.rmi.Naming;publicclassMensageiroCliente{publicstaticvoidmain(String[]args){try{Inter_Mensageirom=(Inter_Mensageiro)Naming.lookup("//192.168.1.100/MensageiroService");Stringresposta=m.lerMensagem();System.out.println("Resposta do Server: "+resposta);}catch(RemoteExceptione){System.out.println();System.out.println("RemoteException: "+e.toString());}catch(Exceptione){System.out.println();System.out.println("Exception: "+e.toString());}}}*********************************************************************************