Problema na execução do Java RMI

3 respostas
B

Boa Tarde, sou estudante do curso de técnico em informática, e tenho um trabalho bem importante sobre java RMI para fazer.
O problema é que, já testei vários fontes, mas todos tem um problema em comum que eu não sei resolver.
Eles executam na mesma máquina ( cliente e servidor ), mas quando mando o cliente para outra máquina, e informo o ip do server, ele não executa e apresenta o erro HelloClient erroConnection refused to host: 127.0.1.1; nested exception is: java.net.ConnectException: Connection refused

eu li algo sobre policy, mas só em sites gringos que não tem explicação, gostaria de uma luz !!

aqui o código do server

[/code]import <a href="http://java.net">java.net</a>.<em>;

import java.rmi.</em>;

import java.rmi.server.<em>;

import java.rmi.registry.</em>;
public class HelloServer {

public static void main (String args [ ]) {

//Cria e instala o security manager

<a href="//System.setSecurityManager">//System.setSecurityManager</a>(new RMISecurityManager() );

try {

//Cria HelloImpl

HelloImpl obj = new HelloImpl();

Naming.rebind(HelloServer, obj);

System.out.println(Hello Server pronto.);

} catch(Exception e) {

System.out.println(HelloServer erro+ e.getMessage());

}

}

}
e aqui o cliente [/code]

import <a href="http://java.net">java.net</a>.<em>;

import java.rmi.</em>;

import java.rmi.registry.<em>;

import java.rmi.server.</em>;
public class HelloClient {

public static void main(String args[ ]) {

//Cria e instala o security manager

//    System.setSecurityManager (new RMISecurityManager () );

try {

Hello obj = (Hello)Naming.lookup(rmi://192.168.8.204/HelloServer”);

System.out.println(obj.sayHello());

} catch(Exception e) {

System.out.println(HelloClient erro+ e.getMessage());

}

System.exit(0);

}

}

3 Respostas

M

1º Verifique se não é o Sistema operacional, desabilite o firewall do windows, ou flush as regras do iptables.

2º Rode o servidor e veja se o mesmo esta up, esteja certo disso

3º Pode ser algum erro na configuração da sua rede, você esta usando a mesma máquina como servidor e cliente, então ate finalizar os testes use sempre o ip 127.0.0.1 no lugar do 192.168.8.204

Tente verificar estes pontos e veja se funciona agora…

B

então, eu estou desenvolvendo em linux, ja o problema de proxy pode ser descartado segundo o meu professor

e o objetivo é executar em máquinas diferentes, não na mesma máquina
e o servidor está rodando corretamente

não sei mais o que fazer MESMO

M

Só para gente fazer um teste…

Neste caso realmente não vai envolver proxy.

Mude para 127.0.0.1 apenas para não ficar patinando nos problemas de rede que podem aparecer, uma vez funcionando o sistema, você muda o ip novamente e vai poder usar em máquinas distintas, e ai caso de algum problema vc vai saber que é rede e não vai ficar batendo a cabeça com código.

Da uma olhada como esta seu firewall linux

para ver isso como root rode

iptables -L
iptables -nat -L
iptables -t mangle -L

caso fique na duvida de como interpretar a saida posta aqui que te falo se pode ser ele ou não.

Se não me engano a porta padrão do rmi é 1099 quando rodar o servidor veja se ela esta aberta

nmap localhost -p 1099

abraço

Criado 4 de outubro de 2011
Ultima resposta 4 de out. de 2011
Respostas 3
Participantes 2