Para este ejemplo estoy usando Windows 7, Netbeans 6.8, JDK1.6 y Glassfish V3
Desde la consola de adminsitracion de Glassfish, creamos un JMS Connection Factory, con la siguiente información:
Luego creamos un JMS Destination Resource, con el siguiente código:
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
jueves, 3 de junio de 2010
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario