Java/RMI: diferenças entre revisões

[edição verificada][revisão pendente]
Conteúdo apagado Conteúdo adicionado
Guiwp (discussão | contribs)
Sem resumo de edição
m <source> -> <syntaxhighlight> (phab:T237267)
Linha 17:
Primeiro devemos criar uma interface que será utilizada para exibir aos usuários dos serviço as operações.
 
<sourcesyntaxhighlight lang=java>
package rmiknolexample;
 
Linha 33:
public String[] readPosts(int beginAt) throws RemoteException;
}
</syntaxhighlight>
</source>
 
Depois devemos criar uma classe que irá implementar a interface e disponibilizar a funcionalidade.
 
<sourcesyntaxhighlight lang=java>
package rmiknolexample;
 
Linha 75:
return copy;
}
</syntaxhighlight>
</source>
 
Feito isso vamos implementar a classe que irá disponibilizar o serviço ao usuário.
 
<sourcesyntaxhighlight lang=java>
package rmiknolexample;
 
Linha 106:
}
}
</syntaxhighlight>
</source>
 
Na classe acima observe a linha:
 
<sourcesyntaxhighlight lang=java>
Naming.rebind("forumService", forumObj);
</syntaxhighlight>
</source>
 
Ela é responsável por associar um nome ao seu objeto. É através deste nome que os computadores e processos remotos irão encontrar e utilizar o seu objeto. Este nome é único para um dado host, ou seja, mesmo se duas aplicações criarem objetos distintos (até mesmo de classes distintas) o mesmo nome não poderá ser utilizado.
Linha 118:
Por último vamos implementar a classe que irá utilizar o serviço disponibilizado.
 
<sourcesyntaxhighlight lang=java>
package rmiknolexample;
 
Linha 156:
}
}
</syntaxhighlight>
</source>
 
A linha:
 
<sourcesyntaxhighlight lang=java>
IForum forumObj = (IForum)Naming.lookup("rmi://localhost/forumService");
</syntaxhighlight>
</source>
 
Efetua uma consulta no host informado (neste caso o localhost) e solicita o objeto associado ao nome: forumService.
Linha 170:
Para facilitar o teste, a classe abaixo foi criada apenas para permitir rodar o serviço através da linha de comando: "java -jar arquivoJar.jar"
 
<sourcesyntaxhighlight lang=java>
package rmiknolexample;
 
Linha 191:
}
}
</syntaxhighlight>
</source>
 
pronto!