Oi a todos.
Estou estudando ejb e estou aprendendo.
Mas ao consumir um ejb remoto, inclusive testando em máquinas remotas mesmo, meu cliente precisa conhecer a interface remota, no meu caso:
Service service = (Service)ctx.lookup("ServiceBean/remotel");
Porém, o que eu fiz foi gerar o ejb no server, e ai copiei este jar e levei pra outra máquina onde fiz o cliente, porque essa classe Service é do projeto “server” remoto.
Minha dúvida é: Está certo isso? Pra criar o cliente eu tenho que copiar o jar do ejb remoto e levar pro outro projeto? Ou eu crio uma classe Service igual no meu projeto(porém as vezes posso não saber é o real código dessa classe, então essa opção fica estranha) ?
Qual certo visto que cliente e servidor estão em máquinas diferentes, porém o cliente tem que possuir um import da classe Service?
Grata a todos;
Na verdade você precisa de um “pacote para cliente EJB”, que contém o seguinte:
- As interfaces remotas.
- Os stubs para acesso remoto.
Se você criar um projeto EJB pelo Eclipse, ele automaticamente vai criar dois projetos, um com os ejbs propriamente ditos e um projeto ejb-client, com esses itens que eu citei lá em cima. Aí é só gerar um .jar do ejb-client e colocar no classpath do aplicativo cliente.
[quote=carol_programadora]Oi a todos.
Estou estudando ejb e estou aprendendo.
Mas ao consumir um ejb remoto, inclusive testando em máquinas remotas mesmo, meu cliente precisa conhecer a interface remota, no meu caso:
Service service = (Service)ctx.lookup("ServiceBean/remotel");
Porém, o que eu fiz foi gerar o ejb no server, e ai copiei este jar e levei pra outra máquina onde fiz o cliente, porque essa classe Service é do projeto “server” remoto.
Minha dúvida é: Está certo isso? Pra criar o cliente eu tenho que copiar o jar do ejb remoto e levar pro outro projeto? Ou eu crio uma classe Service igual no meu projeto(porém as vezes posso não saber é o real código dessa classe, então essa opção fica estranha) ?
Qual certo visto que cliente e servidor estão em máquinas diferentes, porém o cliente tem que possuir um import da classe Service?
[/quote]
Quando vc cria um EJB vc cria uma interface e uma implementação. A Interface é o que precisa estar no cliente. Apenas isso, não a classe que implementa. Vc precisa do jar que contem as interfaces.
EJB - como usar a interface remota sendo que não tenho acesso?
Um bean de entidade que tem um relacionamento gerenciado por contêiner com outro bean de entidade.
Desempenho e Acesso
Você pode distribuir componentes entre diferentes servidores, e o desempenho real pode variar em ambientes operacionais diferentes.