Portal do Software
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

3 participantes

Ir para baixo

Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello) Empty Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por Ernani Yamato Dom Dez 12, 2010 8:39 pm

Boa noite pessoal !!!
gostaria de uma ajuda......
Um professor da universidade passou um exemplo onde ele usa 4 classes para mostrar uma mensagem.....
só que estou sentindo dificuldade na compreensão do exemplo.... os codigos são esses....

//INTERFACE
public interface IHello extends Remote
{
String sayHello() throws RemoteException;
}

//CLASSE HELLO
public class hello extends UnicastRemoteObject implements IHello
{
public hello() throws RemoteException{}

public String sayHello()
{
return "Hello";
}
}

//CLASSE SERVIDOR
public class Servidor
{
public static void main(String args[])
{
try
{
//criar o objeto que implementa o Hello
Hello obj =new Hello();

//cadastrando o objeto hello no registro
Naming.rebind("//localhost/hello", obj);
System.out.println("cadastrando o objeto hello no registro");
}
catch(Exception e)
{
System.out.println("erro: "+e.get.Message());
}
}
}

//CLASSE CLIENTE
public class Cliente
{
public static void main (String args[])
{
try
{
IHello obj = (IHello)Naming.lookup("hello");
String message = obj.sayHello();
System.out.println("Messagem do servidor: "+message);
}
catch (Exception e)
{
System.out.println("erro: "+e.getMEssage());
}
Systtem.exit(0);
}
}


** DOIS TRECHOS DO CODIGO Q NAO COMPREENDI DIREITO

IHello obj = (IHello)Naming.lookup("hello");

Naming.rebind("//localhost/hello", obj);

a relação entre esses dois trechos o q eles tem em comum....

gostaria de comprender esse codigo e como eles se relaconam.......

Agradeço pela força novamente de todos dessa comunidade......
Ernani Yamato
Ernani Yamato
Basico

Mensagens : 7
Reputação : 0
Data de inscrição : 23/10/2010
Idade : 43

http://twitter.com/double_click

Ir para o topo Ir para baixo

Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello) Empty Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por rksasaki Dom Dez 12, 2010 9:25 pm

Olá Ernani Yamato.

Primeiramente, gostaria de pedir desculpas pelo atraso ao responder este tópico.
Bom, eu entendo que você esteja com dúvidas. Este exemplo de código que você postou realmente não está muito claro.

Na próxima vêz, requisite ao seu professor, os comentários do código. É complicado o entendimento de um pedaço de código desta forma, sem conhecer algumas particularidades da linguagem.
Neste caso, temos o objeto Naming, utilizando dois métodos estáticos, Rebind e lookUp. Sem conhecer estas duas funcionalidades, também não consigo entender o objetivo.

Um abraço.
rksasaki
rksasaki
Colaborador

Mensagens : 52
Reputação : 0
Data de inscrição : 15/10/2010
Idade : 34

Ir para o topo Ir para baixo

Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello) Empty Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por Ernani Yamato Seg Dez 13, 2010 7:33 am

RMI



OBSERVAÇÕES



- A porta de comunicação entre o cliente e o servidor é a 1099

- O método rebind da classe Naming é utilizado para registrar o novo objeto que está sendo criado no registry

- O método lookup da classe Naming é utilizado para um cliente obter referência de um objeto remoto. Este método interage com o registro registry

- Toda interface deve herdar de extends Remote

- Todo método da interface deve prever exceções

String sayHello() throws RemoteException



PASSOS PARA EXECUÇÃO

1) Definir uma interface

2) Definir as classes e compilar a classe que contém a implementação utilizando o compilador RMIC. Este compilador serve para gerar os stubs e skeletons

3) Para disponibilizar o registry de objetos start rmiregistry





ERROS COMUNS



- Não inicializar o rmiregistry , isto impossibilita que se cadastre e obtenha uma referência de um objeto remoto



INSTALAÇÃO DO AMBIENTE

Basta ter o Jdk 1.4 ou superior instalado.



Alteração de variáveis de ambiente.

Verificar se o conteúdo das variáveis PATH e CLASSPATH está com seus devidos valores.





OBS. VERIFIQUE A VERSÃO DO JDK





tenhu esse pequeno explicativo que o professor anexou junto com esse codigo..............



sera q ajuda............
Ernani Yamato
Ernani Yamato
Basico

Mensagens : 7
Reputação : 0
Data de inscrição : 23/10/2010
Idade : 43

http://twitter.com/double_click

Ir para o topo Ir para baixo

Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello) Empty Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por rksasaki Seg Dez 13, 2010 11:17 am

Ok, não tenho muito conhecimento em Java, mas o que esse pedaço de código faz é algo muito interessante!

Você está instanciando um objeto, que está no servidor e não no lado cliente!

IHello obj = (IHello)Naming.lookup("hello");
Naming.rebind("//localhost/hello", obj);

Preste atenção. Você tem a instancia "obj". Está tipada como IHello. Você está utilizando o método lookup para receber o objeto do servidor e com o typecasting, você tem a instancia do tipo da interface!.
O método rebind, apenas registra a instância que você acaba de receber do servidor.

Muito legal! Smile
rksasaki
rksasaki
Colaborador

Mensagens : 52
Reputação : 0
Data de inscrição : 15/10/2010
Idade : 34

Ir para o topo Ir para baixo

Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello) Empty Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por Ernani Yamato Seg Dez 13, 2010 9:25 pm

Depois que li sua explicação, ate eu achei interessante^^
pq ate entao, nem eu sabia que estava fazendo de verdade....


Muito Obrigado^^

Abraço!
Ernani Yamato
Ernani Yamato
Basico

Mensagens : 7
Reputação : 0
Data de inscrição : 23/10/2010
Idade : 43

http://twitter.com/double_click

Ir para o topo Ir para baixo

Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello) Empty Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por kevinlira Ter Dez 21, 2010 12:10 pm

Ao meu ponto de vista, explicação é capaz de sanar a Dúvida.

Post fechado
farao
kevinlira
kevinlira
Admin

Mensagens : 19
Reputação : 0
Data de inscrição : 15/10/2010
Idade : 32
Localização : Suzano

Ir para o topo Ir para baixo

Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello) Empty Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos