RSS

JavaEE: EJB

04 Jul

El siguiente artículo sobre pequeños demos o “hola mundos” va a tratar de EJB, esto son los llamados Enterprise JavaBeans y están pensados como componentes en el lado del servidor que permiten al desarrollador olvidarse de problemas relacionados con sistemas distribuidos y centrarse en el desarrollo de la lógica de negocio.

Pero vamos a empezar con ello. Para esto vamos a necesitar Eclipse, Maven, y yo como servidor voy a utilizar un Glassfish ya que recientemente ha sido publicada la versión con soporte para JavaEE 7.

Lo primero que vamos a crear es un projecto en Eclipse con Maven, al igual que en el caso anterior, sin arquetipo y sin nada. Una vez hecho esto, añadiremos en el fichero pom.xml nuestras dependencias:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.wordpress.infow</groupId>
    <artifactId>ejb</artifactId>
    <version>1.0</version>
    <packaging>war</packaging>
    <name>ejb</name>
    <url>http://www.infow.wordpress.com</url>

    <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ejb-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <ejbVersion>3.1</ejbVersion>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Tras esto lo primero que haremos será crear nuestro fichero EJB con el primer ejemplo. En este caso un simple método que recibirá un nombre y devolverá un mensaje.

EJB

@Stateless
public class MessageBean {
    public String getMessage(String name) {
        return "Hello " + ((name != null) && (name.length() > 0) ? name : "anonymous");
    }
}
  • @Stateless – Anotación que indica que es un EJB sin estado.

Y después de esto, solo necesitaremos algo que lo invoque, en mi caso por ejemplo he utilizado un Servlet para esto.

Servlet

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

    @EJB
    MessageBean message;

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println("<html lang=\"es\">");
        out.println("<head>");
        out.println("<title>EJB Example</title>");
        out.println("</head>");
        out.println("<body>");
        try {
            out.println("<p>" + this.message.getMessage("svoboda") + "</p>");
        } finally {
            out.println("</body>");
            out.println("</html>");
            out.close();
        }
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "EJB Example";
    }
}
  • @EJB – Realizará la carga (injección) del EJB inicializando el objeto y dejándolo listo para usar.

Simplemente con estos pocos fichero ya tendríamos un ejemplo de EJBs funcionando sin mucha complicación.

Al igual que la vez anterior, os dejo el código del proyecto para que podáis echarle un ojo y desplegarlo en vuestros servidores.

Código EJB Hello World: EJB

Al igual que en el caso anterior, se que para alguien que no conozca esta tecnología, la explicación no es muy extensa, pero no es el objetivo de esta serie de artículos como ya dije en le primero de ellos. De todas formas, si tenéis cualquier pregunta o comentario, adelante. Nos vemos.

Anuncios
 
Deja un comentario

Publicado por en 4 julio, 2013 en JavaEE

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: