Download - u04 - Enterprise JavaBeans(EJB) Parte1
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
1/65
UNID 4- Enterprise JavaBeans (EJB)
Parte 1
UNID 4- Enterprise JavaBeans (EJB)
Parte 1
UNAMA Universidade da AmazniaPR-REITORIA DE PESQUISA, PS-GRADUAO E EXTENSOPS-GRADUAO LATO SENSUCurso de Especializao em Desenvolvimento de Sistemas Baseado em Software Livre
Desenvolvimento de Aplicaes Multicamadas
Prof. Cludio [email protected]
mailto:[email protected]:[email protected] -
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
2/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
2
AssuntosAssuntos
Enterprise JavaBeans (EJB)
Beans de sesso
Exerccios
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
3/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
3
Enterprise JavaBeans (EJB)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
4/65
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
5/65Desenvolvimento de Aplicaes MulticamadasPro C o art ns
5
Quando usar EJBs?Quando usar EJBs?
Voc deve considerar o uso de EJBs se sua
aplicao tiver alguns dos seguintes requisitos: A aplicao deve ser escalvel
A aplicao cresce em nmero de usurios, voc podedistribuir os componentes de uma aplicao em mltiplas
mquinas. As transaes so necessrias para assegurar a
integridade dos dados
Os EJBs suportam transaes que controlam o acesso
concorrente de objetos compartilhados A aplicao ter inmeros clientes
Estes clientes podem ser magros (thin client), em variadosdispositivos e em quantidade (escala).
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
6/65Desenvolvimento de Aplicaes MulticamadasPro C o art ns
6
Tipos de componentes EJBTipos de componentes EJB
O EJB consiste de trs tipos de componentes:
Session Beans (regras de negcio)
Entity Beans (persistncia)
Orientados a mensagem (Message Driven Beans -MDB)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
7/65Desenvolvimento de Aplicaes Multicamadas
Pro C o art ns7
Beans de sesso
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
8/65Desenvolvimento de Aplicaes Multicamadas
Pro C o art ns8
Session BeansSession Beans
Os Session Beans so responsveis pela execuo das
regras de negcio do domnio da aplicao. Sua vida varia muito de acordo com o tempo de sua sesso.
So classificados em trs tipos:
Stateless (sem estado)
Statefull(com estado)
Singleton Session Beans
Quanto ao acesso, os Session Beans pode ser utilizados de
forma: Local: na mesma mquina (o cliente est na mesma mquina
do servidor)
Remoto: o cliente e o servidor esto em mquinas diferentes.Neste caso, pode haver perda de desempenho.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
9/65Desenvolvimento de Aplicaes Multicamadas
Pro C o art ns9
Stateless Session Bean (SLSB)Stateless Session Bean (SLSB) Os Stateless Session Beans (SLSB) so uteis para as
operaes em que no necessrio armazenar o estadodo objeto.
Os SLSB no mantm o estado entre as chamadas demtodos, isto , no retm os dados processados nosmtodos.
Exemplo de mtodo sem estado (stateless):
Considere o servio (mtodo) para retornar o endereo deum logradouro a partir do nmero do CEP:
public LocalCEP consultaCEP (String cep) { // lgica } Onde LocalCEP um objeto contendo os dados da UF (String),
cidade (String), e o nome do logradouro (String)
Como cada consulta de CEP independe das consultas anteriores,no necessrio manter dados entre uma consulta e outra. Em
outras palavras, no necessrio manter estado.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
10/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
10
Stateless Session Beans no EJB 3Stateless Session Beans no EJB 3
Os Stateless Session Beans (SLSB) so
identificados atravs da anotao @Stateless Na verso EJB 3, necessrio definir uma classe
do tipo interface (Java).
Por exemplo, suponha um SLSB que implementaalgumas operaes matemticas bsicas. Umapossvel interface de utilizao para esse SLSBseria:
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
11/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
11
Stateless Session Beans no EJB 3 (passo 2)Stateless Session Beans no EJB 3 (passo 2)
Aps definir a interface de utilizao, o segundo
passo implementaras operaes do SLSBatravs de uma classe Java.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
12/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
12
Stateless Session Beans no EJB 3 (passo 3)Stateless Session Beans no EJB 3 (passo 3)
O terceiro passo especificar o tipo de Session
Bean que queremos utilizar. No caso da Calculadora, o tipo seria SLSB. Essa
definio realizada atravs da anotao@Stateless.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
13/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
13
Stateless Session Beans no EJB 3 (Passo 4: Definir oStateless Session Beans no EJB 3 (Passo 4: Definir o
tipo de acesso)tipo de acesso)
Por fim, necessrio definir se o SLSB poder ser
acessado remotamente ou apenas localmente. Quando o acesso a um SLSB local, ele s pode ser
acessado por aplicaes que estejam no mesmoservidor de aplicao que ele est hospedado.
Caso contrrio, quando o acesso a um SLSB remoto,ele pode ser acessado tanto por aplicaes que estejamno mesmo servidor de aplicao quanto aplicaes queno estejam.
A definio do tipo de acesso realizada atravs dasanotaes: @Local e @Remote
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
14/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
14
Stateless Session Beans no EJB 3 (Passo 4: Definir oStateless Session Beans no EJB 3 (Passo 4: Definir o
tipo de acesso) - Exemplotipo de acesso) - Exemplo
Segue o exemplo para local e remoto da
Calculadora:
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
15/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
15
Stateless Session Beans no EJB 3.1Stateless Session Beans no EJB 3.1
Na verso EJB 3.1, quando o acesso a um SLSB local, no mais necessrio definir uma interface Java nem utilizar a anotao@LOCAL. Ento, bastaria implementar uma classe Java com aanotao @STATELESS
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
16/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
16
Cliente local usando um SLSB - no EJB 3.1Cliente local usando um SLSB - no EJB 3.1
Na verso 3.1, quando o acesso a um SLSB
local, no mais necessrio definir uma interfaceJava nem utilizar a anotao @LOCAL.
Alm disso, as regras de empacotamento foramsimplificadas. Os Session Beans podem serempacotados no mdulo web.
Exemplo a seguir, mostra o uso do componenteCalculadoraBean por uma pequena aplicao
cliente na web usando um servlet.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
17/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
17
Cliente Web usando o Session Bean localCliente Web usando o Session Bean local
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
18/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
18
Cliente Java SE RemotoCliente Java SE Remoto
Os Session Beans tambm podem ter acesso
remotamente, ou seja, podem ser usados por aplicaesfora do mesmo servidor de aplicao.
Quando o acesso local, podemos injetar um SLSBatravs da anotao @EJB no componente que
necessita dos servios implementados pelo SLSB. Quando o acesso remoto, no possvel usar o
recurso de injeo de dependncia.
O acesso remoto pelo cliente realizado acessando o
nome adotado pelo SLSB ao ser implantado noservidor de aplicao.
A tecnologia que permite o acesso remoto o JNDI.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
19/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
19
Usando o JNDI para acesso remotoUsando o JNDI para acesso remoto
Uma aplicao Java remota deve acessar o
servio de nomes (JNDI) do servidor de aplicaono qual o SLSB est implantado.
O trecho de cdigo Java para fazer uma consultapor um SLSB no JNDI teria o seguinte padro:
A aplicao cliente de posse da referncia do SLSB podechamar as operaes normalmente como se o Session Beanestivesse local. Contudo, importante ressaltar que aschamadas so remotas e portanto mais demoradas.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
20/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
20
Stateful Session Beans (SFSB)Stateful Session Beans (SFSB)
A ideia fundamental por trs dos SFSBs a
necessidade de manter estado entre asexecues das regras de negcio que elesimplementam.
Para exemplificar o conceito de SFSB considere ofuncionamento de uma aplicao web que utilizao padro Carrinho de Compras de uma lojavirtual.
Este exemplo visto nas prximos lminas.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
21/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
21
Carrinho de ComprasCarrinho de Compras
As regras de negcio do carrinho podem ser
implementado atravs de alguns mtodos.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
22/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
22
H duas necessidades fundamentais no exemplo do
carrinho de compras que devemos observar. Primeiro, uma instncia da classe CarrinhoBean no
deve atender vrios clientes para no misturar produtosescolhidos por clientes diferentes.
Segundo, os produtos adicionados devem ser mantidosentre as chamadas dos mtodos da classeCarrinhoBean.
Em outras palavras, necessrio manter o estado do
carrinho. Portanto, o estado do carrinho, representado pelos
produtos adicionados, deve ser mantido em umaestrutura de dados do tipo lista ou conjunto.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
23/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
23
Definio do SFSB CarrinhoBean no EJB 3.1Definio do SFSB CarrinhoBean no EJB 3.1
Na verso 3.1, quando o acesso a um SFSB local, no mais
necessrio definir uma interface Java nem utilizar a anotao @LOCAL (como
era feito na verso anterior do EJB ). Ento, bastaria implementar uma classe Javacom a anotao @STATEFUL.
Estrutura deconjunto pararepresentar o
estado docarrinho
(retenao dosprodutos em
memria)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
24/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
24
Sobre conjuntos (Set) em Java...Sobre conjuntos (Set) em Java...
A classe Set um tipo de classe Interface que define
uma coleo, ou conjunto, que no contm duplicatasde objetos. Isto , so ignoradas as adies caso oobjeto ou um objeto equivalente j exista na coleo.
Por objetos equivalentes, entenda-se objetos que tenham
o mesmo cdigo hash (retornado pelo mtodohashCode()) e que retornem verdadeiro na comparaofeita pelo mtodo equals().
No garantida a ordenao dos objetos, isto , aordem de iterao dos objetos no necessariamente temqualquer relao com a ordem de insero dos objetos.Por isso, no possvel indexar os elementos porndices numricos, como em uma List.
Leia mais emhttp://javafree.uol.com.br/artigo/847654/Collections-Framework.html
http://javafree.uol.com.br/artigo/847654/Collections-Framework.htmlhttp://javafree.uol.com.br/artigo/847654/Collections-Framework.html -
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
25/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
25
Ciclo de Vida dos objetos StateFull Session BeanCiclo de Vida dos objetos StateFull Session Bean
As instncias dos SFSBs so administradas pelo EJBContainer.
Devemos entender o ciclo de vida desses objetos parautilizar corretamente a tecnologia EJB.
Para entender mais facilmente o ciclo de vida das instncias
dos SFSBs, devemos sempre ter em mente que cadainstncia atende apenas um cliente.
O ciclo de vida das instncias de um SFSB possui trsestados:
1. NO EXISTE 2. PRONTO
3. PASSIVADO
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
26/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
26
Ciclo de vida de um Stateful Session BeanCiclo de vida de um Stateful Session Bean
Mudanas de estado do SFSB (EstadoMudanas de estado do SFSB (Estado
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
27/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
27
Mudanas de estado do SFSB (EstadoMudanas de estado do SFSB (EstadoPronto e No Existe)Pronto e No Existe)
Primeiramente, devemos lembrar que o EJB container
garante o estado conversacional do Stateful SessionBean, mantendo um relacionamento de um-para-um,entre o cliente e a instncia do bean.
Para que isso seja possvel, alocado um espao de
memria para guardar as informaes do cliente (estadoPronto/Ready).
Isso resulta em reservar memria para cada cliente quesolicita uma instncia do bean, tendo um gasto extra deprocessamento e espao em memria.
A instncia do bean alocado na memria ir existir atque seja removida pelo cliente ou por time-out (estadoNo existe).
Mudanas de estado do SFSB (EstadoMudanas de estado do SFSB (Estado
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
28/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
28
Mudanas de estado do SFSB (EstadoMudanas de estado do SFSB (EstadoPassivado)Passivado)
Considere um sistema com 10 mil clientes solicitando instnciasdo nosso Stateful Session Bean (por exemplo, um carrinho decompras).
Certamente, no ser preciso manter todos os carrinhos aomesmo tempo na memria principal, pois isso seria muito caro edesnecessrio.
Deste modo, os carrinhos que esto ociosos podem ser alocadosna memria secundria, liberando memria principal e tornando ainstncia do bean adormecida (passivada).
Quando o cliente solicitar novamente informaes do carrinho, ainstncia relativa ao cliente que estava desativada ser reativadae retornar para a memria principal pronta para uso (PRONTO).
O que acabamos de descrever uma fase importante do ciclo devida, sendo chamado de passivao e ativao (ready), tudogerenciado pelo EJB container
Si l t S i B
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
29/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
29
Singleton Session BeansSingleton Session Beans
Este tipo de Session Bean surgiu na verso 3.1 do EJB.
O objetivo de um Singleton Session Bean compartilhardados transientes entre todos os clientes (usurios) deuma aplicao EJB.
A anotao utilizada @Singleton
Exemplos de uso do Singleton em funcionalidades de umaplicativo:
contabilizar o nmero de usurios conectados aplicao;
funcionamento de um sistema de bate-papo no qual assalas so criadas dinamicamente pelos usurios durante aexecuo.
E l d Si l t ( l l)E l d Si l t ( l l)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
30/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
30
Exemplo de Singleton (para acesso local)Exemplo de Singleton (para acesso local)
Classe para um representar um Chat (bate-papo).
E l C t d d U iE l C t d d U i
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
31/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
31
Exemplo para um Contador de UsuriosExemplo para um Contador de Usurios
O EJB Container cria apenas uma instncia para cadaSingleton Session Bean. Por padro, o EJB Container quem decide quando a criao da instncia de um SingletonSession Bean deve ser realizada. Contudo, possveldeterminar que essa criao seja realizada na inicializaoda aplicao atravs da anotao @Startup.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
32/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
32
Exemplos de Enterprise JavaBeans
(EJB) usando Netbeans 7 eGlassfish 3.1
Criando e executando um cliente aplicativo noCriando e executando um cliente aplicativo no
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
33/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
33
Criando e executando um cliente aplicativo noC a do e e ecuta do u c e te ap cat o oservidor GlassFishservidor GlassFish
Este tutorial mostra como criar um cliente aplicativo
simples (console) e como acessar um EnterpriseJavabean (EJB) implementado para o GlassFish Server3.
Neste tutorial, voc ir criar um aplicativo corporativo que
contm um bean de sesso simples e um projeto debiblioteca de classe Java que contm a interface remotapara o bean da sesso.
Voc ir ento criar um cliente aplicativo (em console)que acesse o bean da sesso atravs da interfaceremota na biblioteca da classe. A biblioteca da classe Jarque contm a interface remota adicionada ao classpathdo aplicativo corporativo e ao cliente aplicativo.
E i d t t i lExerccios do tutorial
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
34/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
34
Exerccios do tutorialExerccios do tutorial
Criando a biblioteca de classe Java
Criando um mdulo EJB Criando o Bean de sesso
Adicionando um mtodo administrativo
Implementando o aplicativo corporativo Criando o cliente do aplicativo
Adicionando a biblioteca da classe
Executando o aplicativo
Criando a biblioteca de classe JavaCriando a biblioteca de classe Java
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
35/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
35
Criando a biblioteca de classe JavaCriando a biblioteca de classe Java
Nesta sesso voc ir criar um projeto de
biblioteca de classe Java que ir conter ainterface remota para o EJB. A interface remota se comporta como uma API para o
EJB, que usada por clientes para se comunicar com
o EJB.A biblioteca JAR fcil de ser distribuda para
quaisquer clientes que necessitem chamar o EJB.
Os clientes que desejam acessar o EJB somenteprecisam adicionar a biblioteca JAR classpath doprojeto.
A implementao EJB usa o mesmo JAR paraimplementar a interface.
Criando a biblioteca de classe Java (1)Criando a biblioteca de classe Java (1)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
36/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
36
Criando a biblioteca de classe Java (1)Criando a biblioteca de classe Java (1)
1. Escolha Arquivo > Novo projeto e selecione Bibliotecade classe Java na categoria Java. Clique em Prximo.
Criando a biblioteca de classe Java (2)Criando a biblioteca de classe Java (2)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
37/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
37
Criando a biblioteca de classe Java (2)Criando a biblioteca de classe Java (2)
2. Digite AulaEJBRemoteInterface como o nome do
projeto. Clique em Finalizar.
Ao finalizar o IDE criar o projeto da Biblioteca de classe Java.A seguir, voc usar um assistente para criar um bean da sesso e a interface remota paraseu bean da sesso no projeto Biblioteca de classe. O cliente aplicativo acessar o bean dasesso atravs da interface na biblioteca de classe.
Criando um mdulo EJB e a Aplicao Corporativa (1)Criando um mdulo EJB e a Aplicao Corporativa (1)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
38/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
38
Criando um mdulo EJB e a Aplicao Corporativa (1)Criando um mdulo EJB e a Aplicao Corporativa (1)
Agora voc ir usar o assistente para criar um aplicativocorporativo contendo um mdulo EJB. O assistente fornece uma
opo para criar um mdulo EJB quando voc cria o aplicativo. Em Arquivo > Novo projeto e selecione Aplicativo corporativo
na categoria Java EE. Clique em Prximo.
Criando um mdulo EJB e a Aplicao Corporativa (2)Criando um mdulo EJB e a Aplicao Corporativa (2)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
39/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
39
Criando um mdulo EJB e a Aplicao Corporativa (2)Criando um mdulo EJB e a Aplicao Corporativa (2)
2. Digite AulaEntAppEJB como o Nome do
projeto. Clique em Prximo.
Criando um mdulo EJB e a Aplicao Corporativa (3)Criando um mdulo EJB e a Aplicao Corporativa (3)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
40/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
40
Criando um mdulo EJB e a Aplicao Corporativa (3)Criando um mdulo EJB e a Aplicao Corporativa (3)
3. Selecione GlassFish Server 3 para o Servidor e confirme averso do Java EE 6.
4. Confirme se Criar mdulo EJB est selecionado (veja se AulaEntAppEJB-ejb) e cancele a seleo de Criar mdulo deaplicativo da Web. Clique em Finalizar.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
41/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
41
Ao finalizar o processo, o IDE cria um aplicativo corporativo eum mdulo EJB. Na janela Projetos, voc pode ver que um
projeto de mdulo EJB est listado sob o n Mdulos Java EE doprojeto de aplicativo corporativo.
Aplicativo corporativo
Mdulo EJB
Biblioteca de classes
Criando o Bean de sesso (1)Criando o Bean de sesso (1)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
42/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
42
Criando o Bean de sesso (1)Criando o Bean de sesso (1)
Neste exerccio, voc usar um assistente para criar umbean da sesso controlado pelo projeto do mduloEJB. No assistente voc ir tambm criar uma interfaceremota para o bean da sesso no projeto biblioteca daclasse.
1. Clique com o boto direito do mouse no projeto do mdulo EJB(o AulaEntAppEJB-ejb) e escolha Novo > Bean da sesso.
Criando o Bean de sesso (2)Criando o Bean de sesso (2) Digite Me SessionBean como o Nome do EJB
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
43/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
43
Digite MeuSessionBean como o Nome do EJB.
Digite ejb para Pacote.
Selecione Sem estado (Stateless) para o Tipo de sesso. Selecione a opo Remota para Criar interface.
Selecione o projeto AulaEJBRemoteInterface na lista suspensa. Cliqueem Finalizar.
Bean de sesso criado...Bean de sesso criado...
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
44/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
44
Bean de sesso criado...Bean de sesso criado...
No fim, o IDE cria o bean da sesso no pacote ejb nomdulo EJB e abre a classe no editor. Voc pode verque a classe MeuSessionBean implementa a interfaceMeuSessionBeanRemote e que oAulaEJBRemoteInterface JAR foi adicionado comouma biblioteca no mdulo EJB.
O assistente tambm cria a interface remota denominadaMeuSessionBeanRemote no pacote ejb do projetoAulaEJBRemoteInterface. O IDE adicionaautomaticamente a Biblioteca da API do Java EE 6 API
que necessria para a interface EJB.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
45/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
45
Adicionando um mtodo no bean de sessoAdicionando um mtodo no bean de sesso
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
46/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
46
Adicionando um mtodo no bean de sesso
Agora voc ir criar um mtodo de negcio simples nobean da sesso que retorna uma sequncia decaracteres.
Clique com o boto direito do mouse no editor deMeuSessionSession e escolha Inserir cdigo eselecione Adicionar mtodo administrativo.
Digite getResultado como o nome do mtodo e Stringcomo o tipo de retorno. Clique em OK.
Faa as seguintes alteraes para modificar o mtodo
getResultado para retornar uma sequncia decaracteres.
A classe deve ter uma aparncia semelhante ao cdigoda prxima figura.
Adicionando um mtodo no bean de sessoAdicionando um mtodo no bean de sesso
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
47/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
47
Agora voc ir criar um mtodo de negcio simples no bean da sesso queretorna uma sequncia de caracteres.
1. Clique com o boto direito do mouse no editor de MeuSessionBean e
escolha Inserir cdigo e selecione Adicionar mtodo de negcio. 2. Digite getResultado como o nome do mtodo e String como o tipo de
retorno. Clique em OK.
Corrigindo o mtodo...Corrigindo o mtodo...
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
48/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
48
Faa as seguintes alteraes para modificar o mtodogetResultado para retornar uma sequncia de caracteres.
A classe deve ter uma aparncia semelhante figura aseguir. Em seguida, Salve as alteraes.
Consideraes...Consideraes...
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
49/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
49
Agora voc tem um aplicativo corporativo com um EJB simplesque exposto atravs de uma interface remota.
Voc tambm tem uma classe independente que contm ainterface EJB que pode ser distribuda para outrosdesenvolvedores.
Os desenvolvedores podem adicionar a biblioteca em seus
projetos, caso desejem se comunicar com o EJB que est expostopela interface remota e no precisam ter o cdigo-fonte para oEJB.
Quando voc modifica o cdigo para o EJB, somente precisadistribuir o JAR da biblioteca de classes (das interfaces)atualizada, caso quaisquer das interfaces sejam modificadas.
Quando voc usa a caixa de dilogo Adicionar mtodoadministrativo, o IDE automaticamente implementa o mtodo nainterface remota.
Implementando o aplicativo corporativoImplementando o aplicativo corporativo
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
50/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
50
p p pp p p
Agora, voc pode construir e executar o aplicativocorporativo. Quando voc executa o aplicativo, o IDE irimplementar o arquivo JAR no servidor.
Clique com o boto direito do mouse no aplicativocorporativo AulaEntAppEJB e escolha Implantar.
Implementando o aplicativo corporativoImplementando o aplicativo corporativo
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
51/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
51
p p p
Quando voc clica em Implantar, o IDE constri o aplicativocorporativo e implementa o arquivo EAR no servidor. Caso voc
examine a janela Arquivos, poder ver que oAulaEJBRemoteInterface JAR est implementado com oaplicativo.
Na janela Servios, caso voc expanda o n Aplicativos doGlassFish Server 3, poder ver que o EntAppEJB foiimplementado.
Criando o cliente do aplicativoCriando o cliente do aplicativo
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
52/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
52
Nesta momento, voc ir criar um cliente de
aplicativo corporativo. Ao criar o cliente deaplicativo, o projeto precisa da biblioteca declasse Java, AulaEJBRemoteInterface, parapoder referenciar o EJB.
Quando voc executa o aplicativo corporativo, oIDE ir empacotar o cliente de aplicativo e abiblioteca de classe Java JAR no arquivo EAR.Os JARs da biblioteca precisam ser empacotadas
em um EAR com o cliente de aplicativo se vocdeseja acessar os JARs a partir do cliente deaplicativo.
Criando a aplicao corporativa cliente (1)Criando a aplicao corporativa cliente (1) Voc pode criar e executar um cliente de aplicativo como um
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
53/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
53
Voc pode criar e executar um cliente de aplicativo como umprojeto independente.
O cliente de aplicativo no mais precisa ser implementado eexecutado como parte de um aplicativo corporativo.
Escolha Arquivo > Novo projeto e selecione Cliente doaplicativo corporativo na categoria Java EE. Clique em Prximo
Criando a aplicao corporativa cliente (2)Criando a aplicao corporativa cliente (2)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
54/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
54
Digite AulaEntAppClient como o Nome do
projeto. Clique em Prximo.
Criando a aplicao corporativa cliente (3)Criando a aplicao corporativa cliente (3)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
55/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
55
3. Selecione GlassFish Server 3.1 como o
servidor. Clique em Finalizar. Observe que no preciso adicionar o projeto em um
aplicativo corporativo
Classe Main do aplicativo clienteClasse Main do aplicativo cliente
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
56/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
56
Quando voc clicar em Finalizar, o IDE criar o projetode cliente de aplicativo e abrir a classe Main.java noeditor (aplicativo do tipo console).
Adicionando a biblioteca da classeAdicionando a biblioteca da classe
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
57/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
57
A biblioteca da classe que contm a interface
remota agora precisa ser adicionada classpathdo projeto para permitir que o cliente de aplicativoreferencie o EJB.
O projeto da biblioteca da classe deve estar
aberto, para que voc possa usar a caixa dedilogo Chamar bean corporativo, para ajud-loa gerar o cdigo para chamar o EJB.
Adicionando a biblioteca da classe (1)Adicionando a biblioteca da classe (1)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
58/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
58
1. Abra a classe Main.java no editor.
2. Clique com o boto direito do mouse no cdigo-fonte eescolha Inserir cdigo e selecione Chamar EnterpriseBean para abrir a caixa de dilogo Chamar o beancorporativo.
Adicionando a biblioteca da classe (3)Adicionando a biblioteca da classe (3)
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
59/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
59
3. Expanda o n do projeto AulaEntAppEJB e
selecione MeuSessionBean. Clique em OK.
Quando voc clica em OK, o IDE adiciona a anotao @EJB noMain.java.
Chamando o mtodo remotoChamando o mtodo remoto
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
60/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
60
Modifique o mtodo main para recuperar a
sequncia de caracteres do mtodogetResultado atravs da interfaceMeuSessionBeanRemote. Salve as alteraes.
Executando o clienteExecutando o cliente
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
61/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
61
Voc agora pode executar o cliente de aplicativo aoconstruir e implementar o projeto AulaEntAppClient.
Clique com o boto direito do mouse no projetoEntAppClient na janela Projetos e selecione Executar.
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
62/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
62
Atividade Prtica
Acrescentando cliente webAcrescentando cliente web
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
63/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
63
Aproveitando o aplicativo anterior, implemente um
cliente web para exibir a mensagem em umapgina web. Voc pode usar um Servlet para chamar o mtodo
remoto getResultado atravs da interface
MeuSessionBeanRemote.
Aplicativo Corporativo CalculadoraAplicativo Corporativo Calculadora
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
64/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
64
Aplique o mesmo processo para implementar o
aplicativo da Calculadora visto nos exemplos daaula. Faa um cliente console chamar as operaes da
calculadora (somar, subtrair, multiplicar e dividir)
Faa um cliente web chamar as operaes dacalculadora.
RefernciasReferncias
-
7/31/2019 u04 - Enterprise JavaBeans(EJB) Parte1
65/65
Desenvolvimento de Aplicaes MulticamadasPro C o art ns
65
BURKE, Bill and MONSON-HAEFEL, Richard."Enterprise JavaBeans 3.0". O'Reilly. 5 ed. 2006.760 p.
Tecnologia JEE: http://docs.oracle.com/javaee/
Tutorial do JEE 6 :http://docs.oracle.com/javaee/6/tutorial/doc/
http://docs.oracle.com/javaee/6/tutorial/doc/http://docs.oracle.com/javaee/6/tutorial/doc/