// RecibeAsunto.java // Alberto Rodriguez Galdo - tetoro@teleline.es - 6/2/2002 import javax.jms.*; import javax.naming.*; public class RecibeAsunto implements MessageListener{ public static void main (String args[]){ new RecibeAsunto().suscribe(); } public void suscribe(){ InitialContext contextoInicial = null; TopicSession sesion = null; try { // Conseguimos de la JNDI los objetos administrados contextoInicial = new InitialContext(); TopicConnectionFactory factory = (TopicConnectionFactory)contextoInicial.lookup("TopicConnectionFactory"); Topic asunto = (Topic)contextoInicial.lookup("asunto"); // Creamos la conexion y la sesion TopicConnection conexion = factory.createTopicConnection(); sesion = conexion.createTopicSession(false,sesion.AUTO_ACKNOWLEDGE); // Creamos una sesion de suscripcion TopicSubscriber suscrito = sesion.createSubscriber(asunto); // Aņadimos nuestro listener para recibir mensajes suscrito.setMessageListener(this); // Iniciamos la recepcion conexion.start(); } catch (NamingException e){ e.printStackTrace(); } catch (JMSException e) { e.printStackTrace(); } } public void onMessage(Message mensaje){ // Se recibe un mensaje try{ // Si es un mensaje de texto, lo mostramos if (mensaje instanceof TextMessage){ TextMessage m = (TextMessage)mensaje; System.out.println("Mensaje recibido: " + m.getText()); } } catch (JMSException e){ e.printStackTrace(); } } }