Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)
3 participantes
Página 1 de 1
Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)
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......
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......
Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)
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.
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- Colaborador
- Mensagens : 52
Reputação : 0
Data de inscrição : 15/10/2010
Idade : 34
Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)
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............
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............
Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)
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!
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!
rksasaki- Colaborador
- Mensagens : 52
Reputação : 0
Data de inscrição : 15/10/2010
Idade : 34
Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)
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!
pq ate entao, nem eu sabia que estava fazendo de verdade....
Muito Obrigado^^
Abraço!
Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)
Ao meu ponto de vista, explicação é capaz de sanar a Dúvida.
Post fechado
Post fechado
kevinlira- Admin
- Mensagens : 19
Reputação : 0
Data de inscrição : 15/10/2010
Idade : 32
Localização : Suzano
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|