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.
Deja una respuesta