Recent comments

EJB- Tipos de EJB HolaMundo EJB Ejemplo



Tipos de EJB



Formas de comunicarnos con un EJB


Anatomia de un EJB


Cliente EJB via JNDI


Inyeccion de dependencias


EJB - Lite



Comparacion entre EJB y EJB Lite



Empaquetamiento de un EJB


Contenedor Embebido de Java EE ideal para pruebas



Creando un EJB


La idea es crear un EJB mediante un contenedor embebido y hacer una prueba unitaria del mismo. Esta es la estructura del proyecto:



Listado de Clases:
HolaMundoEJB

package beans;

import javax.ejb.Stateless;

@Stateless
public class HolaMundoEJB {

    public int sumar(int a, int b) {
        return a + b;
    }
}

-------------------------------------------------------
HolaMundoEJBTest.java
Prueba Unitaria que carga el contenedor de glassfish
package test;

import static org.junit.Assert.*;
import javax.ejb.embeddable.EJBContainer;
import javax.naming.Context;
import org.junit.Before;
import org.junit.Test;
import beans.HolaMundoEJB;

public class HolaMundoEJBTest {

    private static EJBContainer contenedor;
    private static Context contexto;
    private static HolaMundoEJB ejb;

    @Before
    public void iniciarContenedor() throws Exception {
        System.out.println("Iniciando EJB Container");
        contenedor = EJBContainer.createEJBContainer();
        contexto = contenedor.getContext();
        ejb = (HolaMundoEJB) contexto.lookup("java:global/classes/HolaMundoEJB!beans.HolaMundoEJB");
    }

    @Test
    public void testAddNumbers() throws Exception {
        int dato1 = 3;
        int dato2 = 5;
        int resultado = ejb.sumar(dato1, dato2);
        assertEquals((dato1 + dato2), resultado);
        System.out.println("\nOperacion terminada, resultado: " + resultado + "\n");
    }
}

-------------------------------------------------------
pom.xml
Dependencias utilizadas: glassfish embebido, javaee y junit

<?xml version="1.0" encoding="UTF-8"?>
<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>mx.com.gm</groupId>
    <artifactId>HolaMundoEJB</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <glassfish.embedded-static-shell.jar>
            C:\appservers\glassfish\glassfish4\glassfish\lib\embedded\glassfish-embedded-static-shell.jar
        </glassfish.embedded-static-shell.jar>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.glassfish.extras</groupId>
            <artifactId>glassfish-embedded-static-shell</artifactId>
            <version>4.1.2</version>
            <scope>system</scope>
            <systemPath>${glassfish.embedded-static-shell.jar}</systemPath>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>



No hay comentarios.