EJB (IV) JEE 6 y LocalBeans

En muchas ocasiones nos encontramos definiendo una serie de interfaces para utilizar EJBs . A partir de EJB 3.1 no será necesario utilizar interfaces si unicamente necesitamos definir EJBs que tengan acceso local . Nos bastará con definir nuestros EJBs con la anotación @LocalBean.

Anotado el EJB no hará falta el uso de interfaces para utilizarle desde un cliente local.

Vamos a ver el código fuente de nuestro EJB.


package com.arquitecturajava;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
@Stateless
@LocalBean
public class HolaMundoLocalBean {
 public HolaMundoLocalBean() {

 }

 public String mensaje() {

 return "hola ejb sin interface";
 }

}

Para invocar al EJB desde un servlet seguiremos usando las anotaciones habituales pero ahora no tendremos que anotar un interface sino directamente la clase que hemos anotado anteriormente.

@WebServlet("/HolaServletEJBLocal")
public class HolaServletEJBLocal extends HttpServlet {
 private static final long serialVersionUID = 1L;

 @EJB
 HolaMundoLocalBean miejb;

 public HolaServletEJBLocal() {
 super();
 // TODO Auto-generated constructor stub
 }
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

 PrintWriter pw=response.getWriter();
 pw.println(miejb.mensaje());
 pw.close();

 }

}

Una vez hecha esta operación nos hemos ahorrado la generación de interfaces  por parte del EJB con lo cual todo quedará mas sencillo.Esta capacidad esta unicamente disponible en JEE 6.