Você está na página 1de 8

Como criar um EJB

Criando um projeto EJB com um cliente WEB no Eclipse

Gabriel Novais Amorim


Abril/2014

Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente
web que acessa as funcionalidades do EJB. Foi utilizado o Eclipse Kepler e JBoss AS 7.1.

Sumrio
1.

Introduo............................................................................................................................. 2
1.1

Quando usar Enterprise Beans? ................................................................................... 2

1.2

Tipos de Enterprise Beans ............................................................................................ 2

2.

Criando um projeto EJB no Eclipse ....................................................................................... 3

3.

Criando um EJB ..................................................................................................................... 4

4.

Criando mtodos no EJB ....................................................................................................... 6

5.

Criando uma aplicao cliente para o EJB ........................................................................... 7

6.

Concluso .............................................................................................................................. 7

1
www.gabrielamorim.com

1. Introduo
Enterprise Beans so componentes Java EE que implementam a tecnologia Enterprise
JavaBeans (EJB). Estes componentes rodam em um container EJB, dentro de um servidor
de aplicao, que fornece servios de transao e segurana de forma transparente para o
desenvolvedor.
Enterprise Beans rodam do lado servidor encapsulando a lgica do negcio da aplicao e
trazem inmeros benefcios. Primeiro, fornece servios de nvel de sistema, como
gerenciamento de transaes e segurana. Segundo, implementam a lgica do negcio e,
em times onde h diviso de camadas, favorece o foco do desenvolvedor em alguma
camada especfica. Terceiro, so componentes portveis e pode-se criar novas aplicaes a
partir de beans existentes.
1.1 Quando usar Enterprise Beans?
O uso de EJBs deve ser considerado quando:

A aplicao deve ser escalvel. EJBs podem rodar em mquinas diferentes de


forma transparente aos clientes, tornando a aplicao naturalmente distribuda.
Transaes so utilizadas para garantir a integridade dos dados. Enterprise Beans
suportam transaes, que o mecanismo que gerencia o acesso concorrente a
objetos compartilhados.
A aplicao ter uma variedade de clientes. Com poucas linhas de cdigo, clientes
remotos podem facilmente localizar Enterprise Beans.

1.2 Tipos de Enterprise Beans


H dois tipos de Enterprise Beans:

Session: Executa tarefas para um cliente, opcionalmente podem implementar um


web service.
Message-Drive: Atua como um listener para um tipo particular de mensagens,
como JMS.

Nas verses anteriores da especificao EJB 3, as verses EJB 2.x e EJB 1, havia um terceiro
tipo de Enterprise Bean, o Entity Bean. Eles foram substitudos pelas entities da JPA.

2
www.gabrielamorim.com

2. Criando um projeto EJB no Eclipse


No Eclipse, clique em File > New > EJB Project, como mostra a figura 1.

Figura 1 New EJB Project no Eclipse

Ser aberta uma janela de configurao de projeto como a apresentada na figura 2. Escolha
um nome para o projeto no campo Project name e marque a opo Add project to an
EAR. A opo de adicionar o projeto a um EAR criar um arquivo EAR que conter o
projeto EJB recm-criado, desta forma, o deploy ser do arquivo EAR com o JAR que
contm os EJBs. Clique em Finish para concluir a configurao e criar o projeto.
Note na aba Project Explorer que foram criados trs projetos, MyEJBProject,
MyEJBProjectClient e MyEJBProjectEAR. Segue descrio de cada um dos projetos:

MyEJBProject: projeto contendo todas as classes de implementao dos EJBs.


compilado como um arquivo JAR.
MyEJBProjectClient: projeto contendo as interfaces dos EJBs. compilado como
um arquivo JAR.
MyEJBProjectEAR: projeto EAR contendo os projetos da aplicao, neste caso,
MyEJBProject.jar e MyEJBProjectClient.jar.

3
www.gabrielamorim.com

Figura 2 Configurao de um novo projeto EJB

3. Criando um EJB
Clique com o boto direito sobre o projeto EBJ, MyEJBProject no caso, em seguida New >
Session Bean (EJB 3.x), como mostra a figura 3.
Ser aberta uma janela de configurao para o EJB a ser criado, conforme figura 4. Informe
o pacote do EJB e o nome da classe. Por default, o tipo do EJB Stateless sem interface (Nointerface view). Mantenha o EJB Stateless, mas altere a criao da interface (Create
business interface) marcando a opo Local e desmarcando a opo No-interface View.
Clique em Finish para criar o EJB e sua interface Local.

4
www.gabrielamorim.com

Figura 3 Criao de um EJB no Eclipse

Figura 4 Configurao do EJB no Eclipse

5
www.gabrielamorim.com

Atente-se para o local onde os artefatos so criados. O EJB criado no MyEJBProject


(HelloBean.java) e a interface local (HelloBeanLocal.java) no MyEJBProjectClient. Note
tambm que o EAR MyEJBProjectEAR contm o mdulo MyEJBProject.jar e a biblioteca
MyEJBProjectClient.jar, desta forma, pode-se fazer o deploy do EAR e utilizar as interfaces
em MyEJBProjectClient para obter instncias dos EJBs em MyEJBProject.

4. Criando mtodos no EJB


Crie mtodos na interface do EJB para que sejam acessados pelos clientes. A listagem de
cdigo 1 define um mtodo na interface HelloBeanLocal.
package com.gabrielamorim.myejb;
import javax.ejb.Local;
@Local
public interface HelloBeanLocal {
public String getHelloMessage();
}
Listagem de Cdigo 1 Definio de mtodo na interface local

Este mtodo deve ser implementado no EJB. A listagem de cdigo 2 mostra o EJB com a
implementao do mtodo String getHelloMessage().
package com.gabrielamorim.myejb;
import javax.ejb.Stateless;
@Stateless
public class HelloBean implements HelloBeanLocal {
/**
* Default constructor.
*/
public HelloBean() {
}
@Override
public String getHelloMessage() {
return "Hello!";
}
}
Listagem de Cdigo 2 Implementao do EJB HelloBean

Aps estes passos, tem-se um EJB pronto para ser usado! A prxima sesso mostra como
usar o EJB HelloBean injetando-o em uma aplicao Web (em um Servlet) por meio da
anotao @EJB.

6
www.gabrielamorim.com

5. Criando uma aplicao cliente para o EJB


Crie um Dynamic Web Project no Eclipse, durante a criao, marque a opo Add project
to an EAR e selecione o arquivo EAR onde j esto o projeto EJB e as interfaces. Isto far o
projeto Web ser adicionado ao mesmo EAR do EJB, desta forma ser necessrio apenas um
deploy.
Crie um Servlet na aplicao Web. A listagem de cdigo 3 mostra a implementao de um
Servlet que injeta o EJB HelloBean por meio da sua interface local HelloBeanLocal.

package com.gabrielamorim.myservlets;
import com.gabrielamorim.myejb.HelloBeanLocal;
@WebServlet("/ServletToEJB")
public class ServletToEJB extends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
private HelloBeanLocal helloBean;
public ServletToEJB() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println(helloBean.getHelloMessage());
}
}
Listagem de Cdigo 3 Servlet injetando o EJB por meio da interface local

Atente-se para a anotao @EJB sob o atributo helloBean do tipo HelloBeanLocal. Esta
anotao injeta uma instncia do EJB HelloBean em helloBean. Basta fazer o deploy do
EAR em um container Web e EJB e acessar o ServletToEJB para ver a mensagem do EJB.

6. Concluso
Foi criado um projeto EJB com um EJB Stateless sendo exposto por uma interface local aos
seus clientes. O projeto EJB foi adicionado a um EAR, junto com o a biblioteca contendo a
interface local do EJB. Foi criado tambm um projeto Web para utilizar o EJB criado por
meio de um Servlet que teve o EJB injetado por meio da anotao @EJB. O projeto Web
tambm foi adicionado ao EAR, resultando assim em um nico deploy.
Este passo a passo teve o intuito de mostrar a criao e a utilizao de um EJB de forma
simples e objetiva, tendo como pblico alvo pessoas que j estudaram a teoria e que
ficaram confusos na hora de implementar um EJB na prtica.

7
www.gabrielamorim.com

Você também pode gostar