Desde la consola de adminsitracion de Glassfish, creamos un JMS Connection Factory, con la siguiente información:


Posteriormente creamos un proyecto JEE llamado MDB



Luego creamos un servlet llamado Generador con el siguiente código:


Como variables de instancia, creamos
@Resource(mappedName="jms/QueueFactory")
javax.jms.QueueConnectionFactory queueConnection;
@Resource(mappedName="jms/Queue")
javax.jms.Queue queue;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try{
Connection connection=queueConnection.createConnection();
Session session=connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer=session.createProducer(queue);
MapMessage message=session.createMapMessage();
message.setString("nombre", "Carlos");
message.setString("apellido", "Marin");
message.setString("id", "A12311");
producer.send(message);
producer.close();
session.close();
connection.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
Luego un creamos un message driven bean, en el asistente como Server Destinations seleccionamos jms/Queue.

Luego codificamos la clase generada, con el siguiente código, en la función onMessage:

public void onMessage(Message message) {
System.out.println("Saludos desde el MDB...");
try {
MapMessage msg = (MapMessage) message;
System.out.println("Nombre:" + msg.getString("nombre"));
System.out.println("Apellido:" + msg.getString("apellido"));
System.out.println("Id:" + msg.getString("id"));
} catch (Exception ex) {
ex.printStackTrace();
}
}
y ejecutamos el Servlet llamado Generador, que nos imprimirá la siguiente información en consola:
Saludos desde el MDB...
Nombre:Carlos
Apellido:Marin
Id:A12311

No hay comentarios:
Publicar un comentario