Para acceder al ejb que hemos construido e instalado anteriormente vamos a crear una sencilla aplicación web con un servlet que utilice los mecanismos de inyección de dependencia para acceder al componente.Asi mismo deberemos añadir la aplicación web al EAR que vamos a desplegar.
En este caso se trata de algo relativamente sencillo y a continuación se muestra el código del servlet
package com.arquitecturajava.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.arquitecturajava.ejb.HolaMundoEJBLocal;
/**
* Servlet implementation class HolaServletEJB
*/@WebServlet("/HolaServletEJB")
public class HolaServletEJB extends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
HolaMundoEJBLocal miobjeto;
public HolaServletEJB() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter pw=response.getWriter();
pw.println(miobjeto.mensaje());
pw.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
En este caso hemos utilizado dos anotaciones @WebServlet que es la anotación encargada de mapear un servlet a partir de Servlets 3.0 (JEE 6) y la anotación @EJB que es la que se encarga de realizar la inyección de dependencia de nuestro EJB en el Servlet.
De esta forma JEE se encarga de inyectar un proxy que implementa el interface local en nuestro Servlet a la hora de acceder al EJB. Para nosotros será transparente pero dentro del servidor de aplicaciones habrá bastante que hacer.
Para que nuestro proyecto Web este incluido dentro del EAR que se va a desplegar pulsaremos boton derecho propiedades y le añadiremos en la sección de deployment descriptor
Una vez hecho esto la aplicación desplegará con los dos módulos sin problemas.
A continuación podemos ver como el servlet muestra la información almacenada en el ejb