RMI pela internet

3 respostas
Milk15

Pessoal, eu não conheço muito bem o java RMI, se alguém que conhece ele tiver uma resposta agradeceria muito :lol:

Eu pretendo fazer um RMI simples pra testar, que nem o do artigo do GUJ ( um hello world) (http://www.guj.com.br/articles/37 ), mas só estou conseguindo fazer localmente que nem no artigo.
Eu queria saber se é possivel fazer RMI sem ser localhost? (pela internet)

Procurei no google… youtube… mas todos os resultados que encontrei explicando, sempre envolvem RMI localmente.

No lugar do localhost (no rebind(), lookup() ), tentei colocar o ip, tentei tb colocar um domínio do no-ip.org, e nada, algumas vezes deu “connection refuse”, tentei deixar desabilitado o firewall e tb não deu certo =/

Alguém pode me dar um toque :?:

Abs.

3 Respostas

Milk15

Estou tendo o mesmo problema desse rapaz aqui: http://www.guj.com.br/java/219300-rmi---erro-ao-tentar-acessar-servidor
A dica pelo que eu vi mesmo é o System.property(“java.rmi.server.hostname”, ip); porque foi resolvido nesse tópico aqui: https://forums.oracle.com/forums/thread.jspa?threadID=2361508&tstart=0 , mas não entendi direito como ele resolveu

Ainda tá dando ConnectionRefuse aqui :cry:, não sei exatamente onde colocar essa linha…

No MensageiroServer eu coloquei na primeira linha:

System.setProperty("java.rmi.server.hostname", "189.xx.xxx.xx");

no MensageiroClient o lookup() está desse jeito;

Mensageiro m = (Mensageiro) Naming.lookup( "rmi://189.xx.xxx.xx/MensageiroService" );
E

Não aconselharia usar RMI pela Internet. Para funcionar direito em uma aplicação profissional, você precisaria pelo menos de tunelamento via HTTP, justamente para evitar os problemas com firewalls ( http://www.cs.swan.ac.uk/~csneal/InternetComputing/Tunnelling.html ).

No seu caso, em que você está usando uma conexão caseira (não uma conexão empresarial), e normalmente os provedores de Internet barram também as máquinas de servirem o protocolo http na porta 80, o tunelamento poderia ser feito em uma outra porta.

De modo geral, em aplicações caseiras, RMI só funciona direito dentro da mesma rede local (por exemplo, em duas máquinas na mesma LAN House :slight_smile: ), e isso se não houver alguma configuração de firewall nas máquinas que impeça uma máquina de falar com a outra na mesma rede (que é o que normalmente acontece se as máquinas estiverem só ligadas entre si com um roteador Wi-Fi).

Milk15

Cara, vc tirou minha dúvida, ajudou muito esse link ae, valeu mesmo! As vezes as coisas são mais dificeis do que parecem hehe.

Criado 17 de outubro de 2012
Ultima resposta 17 de out. de 2012
Respostas 3
Participantes 2