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.
[…] entrada EJB (IV) JEE 6 y LocalBeans aparece primero en Arquitectura […]