Você está na página 1de 65

UNAMA Universidade da Amaznia PR-REITORIA DE PESQUISA, PS-GRADUAO E EXTENSO PS-GRADUAO LATO SENSU Curso de Especializao em Desenvolvimento de Sistemas Baseado

o em Software Livre

UNID 4

- Enterprise JavaBeans (EJB) Parte 1


Prof. Cludio Martins claudiomartins2000@gmail.com

Desenvolvimento de Aplicaes Multicamadas

Assuntos
Enterprise JavaBeans (EJB) Beans de sesso Exerccios

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Enterprise JavaBeans (EJB)

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

O que Enterprise JavaBeans (EJB)


Enterprise JavaBeans (EJB) a arquitetura de

componentes do lado do servidor para o Java Plataform Enterprise Edition (Java EE).
As aplicaes EJB executam dentro de um Continer

EJB.

O continer o responsvel pela implementao de

vrios recursos oferecidos a essas aplicaes.

H diversas implementaes de EJB Container

disponveis no mercado que podemos utilizar. Neste curso, utilizaremos a implementao do Glassfish V3.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

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 pode

distribuir 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 variados

dispositivos e em quantidade (escala).


Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Tipos 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)

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Beans de sesso

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Session 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.


Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Stateless Session Bean (SLSB)


Os Stateless Session Beans (SLSB) so uteis para as

operaes em que no necessrio armazenar o estado do objeto.


Os SLSB no mantm o estado entre as chamadas de

mtodos, isto , no retm os dados processados nos mtodos.

Exemplo de mtodo sem estado (stateless):


Considere o servio (mtodo) para retornar o endereo de

um 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.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Stateless 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 implementa

algumas operaes matemticas bsicas. Uma possvel interface de utilizao para esse SLSB seria:

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

10

Stateless Session Beans no EJB 3 (passo 2)


Aps definir a interface de utilizao, o segundo

passo implementar as operaes do SLSB atravs de uma classe Java.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

11

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.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

12

Stateless Session Beans no EJB 3 (Passo 4: Definir o 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 mesmo servidor de aplicao que ele est hospedado.

Caso contrrio, quando o acesso a um SLSB remoto,

ele pode ser acessado tanto por aplicaes que estejam no mesmo servidor de aplicao quanto aplicaes que no estejam. anotaes: @Local e @Remote

A definio do tipo de acesso realizada atravs das

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

13

Stateless Session Beans no EJB 3 (Passo 4: Definir o tipo de acesso) - Exemplo

Segue o exemplo para local e remoto da

Calculadora:

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

14

Stateless 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 a anotao @STATELESS

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

15

Cliente local usando um SLSB - no EJB 3.1


Na verso 3.1, quando o acesso a um SLSB

local, no mais necessrio definir uma interface Java nem utilizar a anotao @LOCAL.
Alm disso, as regras de empacotamento foram

simplificadas. Os Session Beans podem ser empacotados no mdulo web.


Exemplo a seguir, mostra o uso do componente

CalculadoraBean por uma pequena aplicao cliente na web usando um servlet.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

16

Cliente Web usando o Session Bean local

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

17

Cliente Java SE Remoto


Os Session Beans tambm podem ter acesso

remotamente, ou seja, podem ser usados por aplicaes fora do mesmo servidor de aplicao. atravs da anotao @EJB no componente que necessita dos servios implementados pelo SLSB.

Quando o acesso local, podemos injetar um 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 no servidor de aplicao.

A tecnologia que permite o acesso remoto o JNDI.


Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

18

Usando o JNDI para acesso remoto


Uma aplicao Java remota deve acessar o

servio de nomes (JNDI) do servidor de aplicao no qual o SLSB est implantado.


O trecho de cdigo Java para fazer uma consulta

por um SLSB no JNDI teria o seguinte padro:

A aplicao cliente de posse da referncia do SLSB pode chamar as operaes normalmente como se o Session Bean estivesse local. Contudo, importante ressaltar que as chamadas so remotas e portanto mais demoradas.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

19

Stateful Session Beans (SFSB)


A ideia fundamental por trs dos SFSBs a

necessidade de manter estado entre as execues das regras de negcio que eles implementam.
Para exemplificar o conceito de SFSB considere o

funcionamento de uma aplicao web que utiliza o padro Carrinho de Compras de uma loja virtual.
Este exemplo visto nas prximos lminas.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

20

Carrinho de Compras
As regras de negcio do carrinho podem ser

implementado atravs de alguns mtodos.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

21

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 produtos escolhidos por clientes diferentes. entre as chamadas dos mtodos da classe CarrinhoBean.
carrinho.

Segundo, os produtos adicionados devem ser mantidos

Em outras palavras, necessrio manter o estado do

Portanto, o estado do carrinho, representado pelos

produtos adicionados, deve ser mantido em uma estrutura de dados do tipo lista ou conjunto.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

22

Definio 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 Java com a anotao @STATEFUL.

Estrutura de conjunto para representar o estado do carrinho (retenao dos produtos em memria)

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

23

Sobre conjuntos (Set) em Java...


A classe Set um tipo de classe Interface que define

uma coleo, ou conjunto, que no contm duplicatas de objetos. Isto , so ignoradas as adies caso o objeto ou um objeto equivalente j exista na coleo.
Por objetos equivalentes, entenda-se objetos que tenham

o mesmo cdigo hash (retornado pelo mtodo hashCode()) e que retornem verdadeiro na comparao feita pelo mtodo equals().

No garantida a ordenao dos objetos, isto , a

ordem de iterao dos objetos no necessariamente tem qualquer relao com a ordem de insero dos objetos. Por isso, no possvel indexar os elementos por ndices numricos, como em uma List.
Leia mais em http://javafree.uol.com.br/artigo/847654/Collections-Framework.html
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

24

Ciclo de Vida dos objetos StateFull Session Bean


As instncias dos SFSBs so administradas pelo EJB

Container.

Devemos entender o ciclo de vida desses objetos para

utilizar corretamente a tecnologia EJB.


Para entender mais facilmente o ciclo de vida das instncias

dos SFSBs, devemos sempre ter em mente que cada instncia atende apenas um cliente. estados:

O ciclo de vida das instncias de um SFSB possui trs


1. NO EXISTE 2. PRONTO 3. PASSIVADO
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

25

Ciclo de vida de um Stateful Session Bean

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

26

Primeiramente, devemos lembrar que o EJB container

Mudanas de estado do SFSB (Estado Pronto e No Existe)

garante o estado conversacional do Stateful Session Bean, 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 (estado Pronto/Ready).


Isso resulta em reservar memria para cada cliente que

solicita uma instncia do bean, tendo um gasto extra de processamento e espao em memria.

A instncia do bean alocado na memria ir existir at

que seja removida pelo cliente ou por time-out (estado No existe).


Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

27

Considere um sistema com 10 mil clientes solicitando instncias

Mudanas de estado do SFSB (Estado Passivado)

do nosso Stateful Session Bean (por exemplo, um carrinho de compras).


Certamente, no ser preciso manter todos os carrinhos ao

mesmo tempo na memria principal, pois isso seria muito caro e desnecessrio. na memria secundria, liberando memria principal e tornando a instncia do bean adormecida (passivada).

Deste modo, os carrinhos que esto ociosos podem ser alocados

Quando o cliente solicitar novamente informaes do carrinho, a

instncia relativa ao cliente que estava desativada ser reativada e retornar para a memria principal pronta para uso (PRONTO).
O que acabamos de descrever uma fase importante do ciclo de

vida, sendo chamado de passivao e ativao (ready), tudo gerenciado pelo EJB container
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

28

Singleton Session Beans


Este tipo de Session Bean surgiu na verso 3.1 do EJB. O objetivo de um Singleton Session Bean compartilhar

dados transientes entre todos os clientes (usurios) de uma aplicao EJB.


A anotao utilizada @Singleton

Exemplos de uso do Singleton em funcionalidades de um

aplicativo:

contabilizar o nmero de usurios conectados aplicao; funcionamento de um sistema de bate-papo no qual as

salas so criadas dinamicamente pelos usurios durante a execuo.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

29

Exemplo de Singleton (para acesso local)


Classe para um representar um Chat (bate-papo).

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

30

Exemplo para um Contador de Usurios


O EJB Container cria apenas uma instncia para cada

Singleton Session Bean. Por padro, o EJB Container quem decide quando a criao da instncia de um Singleton Session Bean deve ser realizada. Contudo, possvel determinar que essa criao seja realizada na inicializao da aplicao atravs da anotao @Startup.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

31

Exemplos de Enterprise JavaBeans (EJB) usando Netbeans 7 e Glassfish 3.1

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

32

Este tutorial mostra como criar um cliente aplicativo

Criando e executando um cliente aplicativo no servidor GlassFish


simples (console) e como acessar um Enterprise Javabean (EJB) implementado para o GlassFish Server 3. contm um bean de sesso simples e um projeto de biblioteca de classe Java que contm a interface remota para o bean da sesso.

Neste tutorial, voc ir criar um aplicativo corporativo que

Voc ir ento criar um cliente aplicativo (em console)

que acesse o bean da sesso atravs da interface remota na biblioteca da classe. A biblioteca da classe Jar que contm a interface remota adicionada ao classpath do aplicativo corporativo e ao cliente aplicativo.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

33

Exerccios 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

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

34

Criando a biblioteca de classe Java


Nesta sesso voc ir criar um projeto de

biblioteca de classe Java que ir conter a interface 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 somente

precisam adicionar a biblioteca JAR classpath do projeto. implementar a interface.

A implementao EJB usa o mesmo JAR para


Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

35

Criando a biblioteca de classe Java (1)


1. Escolha Arquivo > Novo projeto e selecione Biblioteca

de classe Java na categoria Java. Clique em Prximo.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

36

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 para seu bean da sesso no projeto Biblioteca de classe. O cliente aplicativo acessar o bean da sesso atravs da interface na biblioteca de classe.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

37

Criando um mdulo EJB e a Aplicao Corporativa (1)


Agora voc ir usar o assistente para criar um aplicativo

corporativo 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.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

38

Criando um mdulo EJB e a Aplicao Corporativa (2)

2. Digite AulaEntAppEJB como o Nome do

projeto. Clique em Prximo.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

39

Criando um mdulo EJB e a Aplicao Corporativa (3)


3. Selecione GlassFish Server 3 para o Servidor e confirme a

verso do Java EE 6.
4. Confirme se Criar mdulo EJB est selecionado (veja se

AulaEntAppEJB-ejb) e cancele a seleo de Criar mdulo de aplicativo da Web. Clique em Finalizar.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

40

Ao finalizar o processo, o IDE cria um aplicativo corporativo e

um mdulo EJB. Na janela Projetos, voc pode ver que um projeto de mdulo EJB est listado sob o n Mdulos Java EE do projeto de aplicativo corporativo. Biblioteca de classes Aplicativo corporativo

Mdulo EJB

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

41

Criando o Bean de sesso (1)


Neste exerccio, voc usar um assistente para criar um

bean da sesso controlado pelo projeto do mdulo EJB. No assistente voc ir tambm criar uma interface remota para o bean da sesso no projeto biblioteca da classe.
1. Clique com o boto direito do mouse no projeto do mdulo EJB (o AulaEntAppEJB-ejb) e escolha Novo > Bean da sesso.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

42

Digite MeuSessionBean como o Nome do EJB. Digite ejb para Pacote.

Criando o Bean de sesso (2)

Selecione Sem estado (Stateless) para o Tipo de sesso. Selecione a opo Remota para Criar interface. Selecione o projeto AulaEJBRemoteInterface na lista suspensa. Clique

em Finalizar.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

43

Bean de sesso criado...


No fim, o IDE cria o bean da sesso no pacote ejb no

mdulo EJB e abre a classe no editor. Voc pode ver que a classe MeuSessionBean implementa a interface MeuSessionBeanRemote e que o AulaEJBRemoteInterface JAR foi adicionado como uma biblioteca no mdulo EJB.
O assistente tambm cria a interface remota denominada

MeuSessionBeanRemote no pacote ejb do projeto AulaEJBRemoteInterface. O IDE adiciona automaticamente a Biblioteca da API do Java EE 6 API que necessria para a interface EJB.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

44

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

45

Adicionando um mtodo no bean de sesso


Agora voc ir criar um mtodo de negcio simples no

bean da sesso que retorna uma sequncia de caracteres.

Clique com o boto direito do mouse no editor de

MeuSessionSession e escolha Inserir cdigo e selecione Adicionar mtodo administrativo.


Digite getResultado como o nome do mtodo e String

como o tipo de retorno. Clique em OK.


Faa as seguintes alteraes para modificar o mtodo

getResultado para retornar uma sequncia de caracteres.


A classe deve ter uma aparncia semelhante ao cdigo

da prxima figura.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

46

Adicionando um mtodo no bean de sesso


Agora voc ir criar um mtodo de negcio simples no bean da sesso que

retorna 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.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

47

Corrigindo o mtodo...
Faa as seguintes alteraes para modificar o mtodo

getResultado para retornar uma sequncia de caracteres.


A classe deve ter uma aparncia semelhante figura a

seguir. Em seguida, Salve as alteraes.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

48

Consideraes...
Agora voc tem um aplicativo corporativo com um EJB simples

que exposto atravs de uma interface remota.

Voc tambm tem uma classe independente que contm a

interface EJB que pode ser distribuda para outros desenvolvedores.


Os desenvolvedores podem adicionar a biblioteca em seus

projetos, caso desejem se comunicar com o EJB que est exposto pela interface remota e no precisam ter o cdigo-fonte para o EJB. distribuir o JAR da biblioteca de classes (das interfaces) atualizada, caso quaisquer das interfaces sejam modificadas.

Quando voc modifica o cdigo para o EJB, somente precisa

Quando voc usa a caixa de dilogo Adicionar mtodo

administrativo, o IDE automaticamente implementa o mtodo na interface remota.


Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

49

Implementando o aplicativo corporativo


Agora, voc pode construir e executar o aplicativo

corporativo. Quando voc executa o aplicativo, o IDE ir implementar o arquivo JAR no servidor. corporativo AulaEntAppEJB e escolha Implantar.

Clique com o boto direito do mouse no aplicativo

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

50

Implementando o aplicativo corporativo


Quando voc clica em Implantar, o IDE constri o aplicativo

corporativo e implementa o arquivo EAR no servidor. Caso voc examine a janela Arquivos, poder ver que o AulaEJBRemoteInterface JAR est implementado com o aplicativo. GlassFish Server 3, poder ver que o EntAppEJB foi implementado.

Na janela Servios, caso voc expanda o n Aplicativos do

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

51

Criando o cliente do aplicativo


Nesta momento, voc ir criar um cliente de

aplicativo corporativo. Ao criar o cliente de aplicativo, o projeto precisa da biblioteca de classe Java, AulaEJBRemoteInterface, para poder referenciar o EJB.
Quando voc executa o aplicativo corporativo, o

IDE ir empacotar o cliente de aplicativo e a biblioteca de classe Java JAR no arquivo EAR. Os JARs da biblioteca precisam ser empacotadas em um EAR com o cliente de aplicativo se voc deseja acessar os JARs a partir do cliente de aplicativo.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

52

Criando a aplicao corporativa cliente (1)


Voc pode criar e executar um cliente de aplicativo como um

projeto independente.

O cliente de aplicativo no mais precisa ser implementado e

executado como parte de um aplicativo corporativo.

Escolha Arquivo > Novo projeto e selecione Cliente do

aplicativo corporativo na categoria Java EE. Clique em Prximo

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

53

Criando a aplicao corporativa cliente (2)


Digite AulaEntAppClient como o Nome do

projeto. Clique em Prximo.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

54

Criando a aplicao corporativa cliente (3)


3. Selecione GlassFish Server 3.1 como o

servidor. Clique em Finalizar.


Observe que no preciso adicionar o projeto em um

aplicativo corporativo

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

55

Classe Main do aplicativo cliente


Quando voc clicar em Finalizar, o IDE criar o projeto

de cliente de aplicativo e abrir a classe Main.java no editor (aplicativo do tipo console).

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

56

Adicionando a biblioteca da classe


A biblioteca da classe que contm a interface

remota agora precisa ser adicionada classpath do projeto para permitir que o cliente de aplicativo referencie o EJB.
O projeto da biblioteca da classe deve estar

aberto, para que voc possa usar a caixa de dilogo Chamar bean corporativo, para ajud-lo a gerar o cdigo para chamar o EJB.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

57

Adicionando a biblioteca da classe (1)


1. Abra a classe Main.java no editor.

2. Clique com o boto direito do mouse no cdigo-fonte e

escolha Inserir cdigo e selecione Chamar Enterprise Bean para abrir a caixa de dilogo Chamar o bean corporativo.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

58

Adicionando a biblioteca da classe (3)


3. Expanda o n do projeto AulaEntAppEJB e

selecione MeuSessionBean. Clique em OK.

Quando voc clica em OK, o IDE adiciona a anotao @EJB no Main.java.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

59

Chamando o mtodo remoto


Modifique o mtodo main para recuperar a

sequncia de caracteres do mtodo getResultado atravs da interface MeuSessionBeanRemote. Salve as alteraes.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

60

Executando o cliente
Voc agora pode executar o cliente de aplicativo ao

construir e implementar o projeto AulaEntAppClient.


Clique com o boto direito do mouse no projeto

EntAppClient na janela Projetos e selecione Executar.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

61

Atividade Prtica

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

62

Acrescentando cliente web


Aproveitando o aplicativo anterior, implemente um

cliente web para exibir a mensagem em uma pgina web.


Voc pode usar um Servlet para chamar o mtodo

remoto getResultado atravs da interface MeuSessionBeanRemote.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

63

Aplicativo Corporativo Calculadora


Aplique o mesmo processo para implementar o

aplicativo da Calculadora visto nos exemplos da aula.


Faa um cliente console chamar as operaes da

calculadora (somar, subtrair, multiplicar e dividir) calculadora.

Faa um cliente web chamar as operaes da

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

64

Referncias
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/

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

65

Você também pode gostar