[RESOLVIDO]Problemas com RMI

3 respostas
R

Boa tarde pessoal.
Tenho um trabalho para fazer usando RMI. Mas não consigo fazer a comunicação entre dois computadores e todos os tutoriais que li ou vi no Youtube usam o cliente e o servidor no mesmo computador. Estou usando um exemplo que vi em um destes tutoriais da interntet apenas para conseguir fazer a comunicação entre os computadores e depois fazer meu trabalho em cima disso mas não estou conseguindo. Fiz um trabalho usando socket por datagrama e me lembro que havia um método que eu usava como argumento o numero do IP do servidor e sua porta, aí tudo bem, mas os tutoriais que li sobre RMI não fazem qualquer mensão ao uso de IP.
Estruturei o código da seguinte forma:
No computador que usei como servidor coloquei a interface remota a classe que implementa a interface e a classe servidor.
No computador que usei como cliente coloquei apenas uma classe cliente que tenta se comunicar com o servidor e tenta invocar os métodos implementados nele por exemplo, o código abaixo representa o que está no computador cliente:
http://pastebin.com/twmdXHFe
E o que coloquei no computador que seria o servidor:
http://pastebin.com/dRAtWwF7

Usei o NetBeans.
Obrigado.

3 Respostas

drsmachado

Qual erro? Em que momento? Depurou?

R

No computador em que está rodando o servidor a mensagem de erro é a seguinte:
run:
Erro no servidor: java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused

No DebugConsole a mensagem é a seguinte:
Listening on 45117
User program running

Cada vez que rodo ele tenta escutar uma porta diferente ali no “Listening on…”
Teria que registrar na padrão do RMI “porta 1099” só falta descobrir como.

R

No computador que está rodando o cliente o erro é o seguinte:
run:
Exception: java.lang.RuntimeException: Uncompilable source code - cannot find symbol
symbol: class Mensageiro
location: class MensageiroClient

Imagino que este erro se deve ao fato de não haver neste computador a interface “Mensageiro”
nem a sua implementação que é a classe “MensageiroImpl”.
No DebugConsole a mensagem é a seguinte:
Listening to 40051
User program running
User program finalized

Eu não deveria digitar o numero do IP do meu servidor e a porta
nesta parte do código?
Mensageiro m = (Mensageiro) Naming.lookup(“rmi://localhost/MensageiroService”);

Criado 30 de maio de 2012
Ultima resposta 30 de mai. de 2012
Respostas 3
Participantes 2