Ing. Pablo Almeida Haro Msc.

CREACION DEL PROYECTO

 

*Seleccionar file/new project

 

 

*Ingresar la ubicación del proyecto

 

 

*Seleccionar  crear módulo ejb y web

 

 

*El Ide creará 3 proyectos

 

ENTITY CLASS

 

*Es una clase de java que normalmente representa a una tabla en la base de datos

*Posee la anotación @Entity la cual define a la clase como una entidad

*Los atributos de la clase representan a los campos de la tabla

*Las clases entidad deben poseer una clave primaria definida por la anotación @Id

*La anotación @GeneratedValue  la estrategia de generación de la clave primaria

 

CREACION DE UN ENTITY CLASS

*Click derecho en el módulo EJB/new/other/persistence/entity class

 

*Ingresar el nombre de la clase, paquete, tipo de clave primaria y crear unidad de persistencia

      

*Seleccionar el proveedor de persistencia y el origen de datos. Dejar el nombre de la unidad de persistencia por defecto

*Se presentará el código por defecto para la clase. Adicionar los campos código y nombre como atributos de la clase:

    private String codigo="";

    private String nombre="";

*Para generar los elementos get y set. Colocar click derecho sobre el editor/insert code/getter and setter

*La clase quedaría como sigue a continuación:

ge pkg_ejb;

 

import java.io.Serializable;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

 

@Entity

public class clase_entidad implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id

  

@GeneratedValue(strategy = GenerationType.IDENTITY)   

private Long id;

    private String codigo="";

    private String nombre="";

 

    public String getCodigo() {

        return codigo;

    }

 

    public void setCodigo(String codigo) {

        this.codigo = codigo;

    }

 

    public String getNombre() {

        return nombre;

    }

 

    public void setNombre(String nombre) {

        this.nombre = nombre;

    }

 

    public Long getId() {

        return id;

    }

 

    public void setId(Long id) {

        this.id = id;

    }

 

    @Override

    public int hashCode() {

        int hash = 0;

        hash += (id != null ? id.hashCode() : 0);

        return hash;

    }

 

    @Override

    public boolean equals(Object object) {

        // TODO: Warning - this method won't work in the case the id fields are not set

        if (!(object instanceof clase_entidad)) {

            return false;

        }

        clase_entidad other = (clase_entidad) object;

        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {

            return false;

        }

        return true;

    }

 

    @Override

    public String toString() {

        return "pkg_ejb.clase_entidad[ id=" + id + " ]";

    }  

}

 

*Guardar la clase

 

 

 

 

 

 

MESSAGE DRIVEN BEAN

 

*Recibe y procesa mensajes

*Para el uso de un message driven vean es necesario un JMS resource

CREACION DE UN MESSAGE DRIVEN BEAN

*Click derecho sobre el proyecto EJB/new/other/Enterprise java beans/Message driven vean

 

 

*Ingresar el nombre del ejb, seleccionar el paquete. En el botón add seleccionar el destino del proyecto

 

 

 

*La clase quedaría como sigue a continuación:

package pkg_ejb;

 

import javax.ejb.ActivationConfigProperty;

import javax.ejb.MessageDriven;

import javax.jms.Message;

import javax.jms.MessageListener;

 

@MessageDriven(mappedName = "jms/clase_mensaje", activationConfig = {

    @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),

    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")

})

public class clase_mensaje implements MessageListener {

   

    public clase_mensaje() {

    }

   

    @Override

    public void onMessage(Message message) {

    }

}

 

*Cuando se haga un deploy de la aplicación automáticamente se creará un recurso JMS

*Reemplazar el código por lo que sigue a continuación:

package pkg_ejb;

 

import javax.annotation.Resource;

import javax.ejb.ActivationConfigProperty;

import javax.ejb.MessageDriven;

import javax.ejb.MessageDrivenContext;

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageListener;

import javax.jms.ObjectMessage;

import javax.persistence.EntityManager;

import javax.persistence.PersistenceContext;

 

@MessageDriven(mappedName = "jms/clase_mensaje", activationConfig = {

    @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),

    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")

})

public class clase_mensaje implements MessageListener {

   

    public clase_mensaje()

    {

    }

    @PersistenceContext(unitName = "prj_ejb-ejbPU")

    private EntityManager em;

  

    @Resource

    private MessageDrivenContext mdc;

   

    @Override

    public void onMessage(Message message)

  {

    ObjectMessage msg = null;

    try {

        if (message instanceof ObjectMessage) {

            msg = (ObjectMessage) message;

            clase_entidad e = (clase_entidad) msg.getObject();

            guardar(e);           

        }

    } catch (JMSException e) {

        e.printStackTrace();

        mdc.setRollbackOnly();

    } catch (Throwable te) {

        te.printStackTrace();

    }

}

    public void guardar(Object object) {

        em.persist(object);

    }

}

CREACION DE UN SESSION FACADE

*Click derecho en el proyecto ejb/new/other/persistence/sesión bean for entity class

 

 

*Seleccionar la clase

*Seleccionar el paquete

 

 

CREACION DE LA CAPA WEB