|
Legal cara,
obrigado.
Deu para ter um entendimento do assunto. Ficou bem claro. Ser� que d� para mostrar alguns links onde tem exemplos de implementa��o usando isso? ----- Original Message ----- From: "Dr. Spock" <[EMAIL PROTECTED]> To: "Henrique Ribeiro" <[EMAIL PROTECTED]> Sent: Monday, January 13, 2003 6:44 PM Subject: Re: [enterprise-list] EJB Context > Caro Henrique, > > Ufa ... T� come�ando a complicar ... mas vamos l� ... > > Para executar qualquer m�todo de neg�cio de um EJB, vc dever� fazer > isso atrav�s da interface de componente (Component Interface) do EJB, > seja uma interface remota ou local. Nenhum cliente externo (seja um > outro EJB, uma aplica��o java cliente, um componente JSP ou um > componente servlet) tem acesso direto � implementa��o do EJB. Ou seja, > um cliente n�o deve ter a refer�ncia para o objeto EJB propriamente dito > para que este possa executar os seus m�todos de neg�cio. Qualquer > chamada deve ser realizada atrav�s do objeto de interface componente. > > Atrav�s do objeto que representa a interface do componente a coisa > funciona como um 'proxy'. Ou seja, vc chama o m�todo do objeto que > realiza a interface do componente (Component Interface) e este m�todo � > que chama o m�todo correspondente e propriamente dito do bean (inst�ncia > do EJB). Neste meio tempo, j� que � o 'container' que implementa este > objeto de interface, todas as valida��es de seguran�a e transa��es s�o > realizadas. Existem uma indire��o neste processo. > > Note que um outro cliente (EJB, application, applet, JSP, servlet, > etc) n�o tem acesso direto ao EJB propriamente dito. Mas o 'container, > que � o ambiente que cuida das inst�ncias dos EJB's e de todos os > recursos e servi�os dispon�veis, tem acesso direto. Portanto, para que > estes outros clientes possam acessar a inst�ncia do EJB, estes devem > fazer atrav�s da interface e nunca atrav�s da refer�ncia direta para o > objeto. N�o podemos nos esquecer que distribui��o tb � uma > caracteristica ofereciada pelos servidores de aplia��es, ou seja, tudo > isso pode rodar em m�quinas diferentes e/ou m�quinas virtuais (JVM) > diferentes. Ent�o, acesso direto n�o pode ser permitido. Mas, deve-se > ter um mecanismo padr�o para permitir tal comunica��o. Por fim, se um > EJB vai passar a sua refer�ncia para outro, para que este segundo EJB > acesse o primeiro, o primeiro n�o poder� passar explicitamente o seu > ponteiro (this). Mas se passar a refer�ncia do seu objeto de interface > componente tudo estar� ok, j� que o segundo EJB acessar� o primeiro > atrav�s da interface componente e n�o atrav�s da refer�ncia direta do > Bean. Assim, atrav�s da interface compoente todos os aspectos de > seguran�a, transa��o, distribui��o, performace escalabilidade, etc, > podem ser tratado pelo 'container'. > > Um bom livro que explica detalhes de como isso funciona e pq � assim > chama-se: > > Enterprise JavaBeans > Richard Monson-Haefel > O'Reilly & Associates, ISBN 0-596-00226-2 > http://www.oreilly.com/catalog/entjbeans3/ > > Tem uma vers�o online deste livro em: > > http://safari.oreilly.com/?XmlId=0-596-00226-2 > > That's all ... []�s > > Spock > > Henrique Ribeiro wrote: > > Certo. A explica��o foi muito boa. Agora para tirar a minha d�vida em um > > exemplo, me expliquem isso. > > > > Esse � um trecho do livro "Tutorial do J2EE". > > > > "Passando um refer�ncia de objecto de um enterprise bean > > > > Supona que seu enterprise bean precise passar uma refer�ncia a ele mesmo > > para outro bean. Por exemplo, voc� talvez queira passar a refer�ncia para > > que o segundo bean possa chamar os m�todos do primeiro bean. Voc� n�o pode > > passar a refer�ncia this porque ela aponta pata a inst�ncia do bean, o qual > > est� executando no cont�iner EJB. Somente o cont�iner pode chamar > > diretamente os m�todos na inst�ncia do bean. Os clientes acessam a inst�ncia > > indiretamente chamando os m�todos no objeto cujo tipo � a interface remota > > do bean. � a refer�ncia a esse objeto (a refer�ncia remota do bean) que o > > primeiro poderia passar para o segundo bean. > > Um bean se sess�o obt�m sua refer�ncia remota chamando o m�todo > > getEJBObject da interface SessionContext. Um bean de entidade poderia chamar > > o m�todo getEJBObject da interface EntityContext. Essas interfaces > > proporcionam aos bean acesso aos contextos de inst�ncia mantidos pelo > > cont�iner EJB. Normalmente, o bean salva o contexto no m�todo > > setSessionContext. O fragmento de c�digo a seguir mostra como um bean de > > sess�o poderia usar esses m�todos. > > > > public class WagonBean implements SessionBean { > > > > SessionContext context; > > ... > > public void setSessionContext(SessionContext sc) { > > this.context = sc; > > } > > ... > > public void passItOn(Basket basket) { > > ... > > basket.copyItems(context.getEJBObject()); > > } > > ... > > > > > > > > > > Henrique Ribeiro > > > > > > > > > |
- [enterprise-list] Context EJB Henrique Ribeiro
- Henrique Ribeiro
