Ing. Pablo Almeida Haro Msc.
MESSAGE DRIVEN BEANS
CREACION DEL JMS (Java Message Service)
*Click en services/click derecho en Glassfish server/view admin console
*Click en recursos JMS/fábricas de conexión/nuevo. Ingresar Nombre del conjunto, tipo de recurso y aceptar.
*Click en recursos de destino/nuevo. Ingresar nombre Jndi, nombre del destino físico, tipo de recurso y aceptar
CREACION DEL PROYECTO
*Click en file new Project/Java ee/Enterprise application
*Ingresar el nombre del proyecto y ubicación
*Dejar por defecto las siguientes opciones
*Se creará el árbol con sigue a continuación:
CREACION DEL MESSAGE DRIVEN BEAN
*Click derecho sobre el proyecto ejb/new/message driven bean. Ingresar el nombre del Ejb, paquete y servidor destino
*El código quedaría como sigue a continuación:
package pkg_ejb_message;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.MapMessage;
import javax.jms.Message;
import javax.jms.MessageListener;
@MessageDriven(mappedName = "destino_jms", activationConfig = {
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class ejb_MessageBean implements MessageListener {
public ejb_MessageBean() {
}
@Override
public void onMessage(Message message)
{ try
{
System.out.println("hello from message driven bean");
MapMessage msg=(MapMessage ) message;
System.out.print("Cédula:"+msg.getString("cedula"));
System.out.print("Nombre:"+msg.getString("nombre"));
System.out.print("Dirección:"+msg.getString("direccion"));
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
CREACION DEL CLIENTE TIPO SERVLET
*Click sobre el proyecto web y seleccionar file/new/new file/web/servlet
*Ingresar nombre de la clase y paquete
*Dejar por defecto los datos que siguen a continuación:
*El código quedaría como sigue a continuación:
package pkg_cliente;
import java.io.IOException;
import java.io.PrintWriter;
import javax.annotation.Resource;
import javax.jms.Connection;
import javax.jms.MapMessage;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "servlet_cliente", urlPatterns = {"/servlet_cliente"})
public class servlet_cliente extends HttpServlet {
@Resource(mappedName="conexion_jms")
javax.jms.QueueConnectionFactory queueConnection;
@Resource(mappedName="destino_jms")
javax.jms.Queue queue;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
Connection connection =queueConnection.createConnection();
Session session=connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
MessageProducer producer=session.createProducer(queue);
MapMessage message=session.createMapMessage();
message.setString("cedula","12233322");
message.setString("nombre","Juan");
message.setString("direccion","10 agosto");
producer.send(message);
producer.close();
session.close();
connection.close(); }
catch(Exception ex){
ex.printStackTrace();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
*Hacer un click derecho sobre el proyecto entreprise/deploy
CORRER LA APLICACIÓN
*Click derecho sobre el archivo cliente (serlvet) y run file