Sei sulla pagina 1di 5

El Concepto de EJB

Autor: Juan Pablo Fernández

Introducción
En este excelente artículo realizado por el maestro Cecilio Álvarez, creador de la
web www.arquitecturajava.com, se detalla en forma práctica el concepto de EJB y
su uso.

El concepto de EJB in WAR y su uso


La de idea de EJB in WAR suena un poco rara al principio . Todos nosotros
estamos acostumbrados a trabajar con aplicaciones Java web o aplicaciones Java
Enterprise. Son en estas últimas en donde se ubican los EJB o Enterprise Java
Beans. Así pues si tuvieramos que echar un vistazo a la estructura de un WAR y
un EAR veríamos de forma simplificada algo así:

Java EE 6 EJB in WAR


Lo que mucha gente no sabe es que a partir de Java EE 6 , el web profile es
muy completo :
Soportando el despliegue de EJBs dentro de WARs .

Esto nos facilitará el futuro camino hacia los microservicios ya que el concepto
de EAR que contiene varios WARs y JARs es bastante lejano a dicha filosofía y
a la modularidad. Vamos a construir un ejemplo de esta casuística . Para
ello necesitamos construir un Dynamic Web Project en Eclipse:
El siguiente paso es construir un EJB dentro del proyecto. En un principio nos
parecerá algo extraño pero el entorno lo soporta sin problema:

1 package com.arquitecturajava.ejb;
2
3 import javax.ejb.Local;
4
5 @Local
6 public interface MensajeEJBLocal {
7
8 public String mensaje() ;
}
9

1
2 package com.arquitecturajava.ejb;
3
import javax.ejb.LocalBean;
4
import javax.ejb.Stateless;
5 @Stateless
6 @LocalBean
7 public class MensajeEJB implements MensajeEJBLocal {
8
9 @Override
public String mensaje() {
10
11 return "hola desde un EJB";
12 }
13
14 }
15
El siguiente paso es construir un Servlet que delegue en el EJB que acabamos de
construir y nos imprima su mensaje.
1
2
package com.arquitecturajava.servlet;
3
4 import java.io.IOException;
5
6 import javax.ejb.EJB;
7 import javax.servlet.ServletException;
8 import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 import com.arquitecturajava.ejb.MensajeEJBLocal;
13
14 @WebServlet("/ServletHola")
15 public class ServletHola extends HttpServlet {
private static final long serialVersionUID = 1L;
16
17 @EJB
18 MensajeEJBLocal mimensaje;
19
20 protected void doGet(HttpServletRequest request, HttpServletResponse response) thro
21
22 response.getWriter().append(mimensaje.mensaje());
}
23
24 }
25
26

Invocamos el Servlet y nos mostrará el mensaje del EJB por pantalla.

Si revisamos el código nos daremos cuenta que el EJB se ha ubicado como una
clase normal de Java en la carpeta classes.
Acabamos de desplegar nuestro primer EJB dentro de un WAR .En muchos
casos usaremos la filosofía de EJB in WAR para desplegar servicios REST y
enfocar hacia los microservicios.

Potrebbero piacerti anche