You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.0 KiB

  1. /*
  2. * Beispiel fr MOM / AMQP
  3. *
  4. * Message Consumer, bezieht Messages von Queue aus ActiveMQ
  5. *
  6. * zuvor ActiveMQ starten, Zugriff auf Web-Oberflche http://localhost:8161/admin Login: admin ;)
  7. *
  8. * Beispiele, siehe z.B. http://activemq.apache.org/hello-world.html
  9. * oder http://activemq.apache.org/getting-started.html
  10. */
  11. package verteiltesysteme.mom;
  12. import javax.jms.Connection;
  13. import javax.jms.Destination;
  14. import javax.jms.Message;
  15. import javax.jms.MessageConsumer;
  16. import javax.jms.Session;
  17. import javax.jms.TextMessage;
  18. import org.apache.activemq.ActiveMQConnectionFactory;
  19. public class Consumer {
  20. public static void main(String[] args) {
  21. try {
  22. // ConnectionFactory erzeugen
  23. ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
  24. // Connection erzeugen
  25. Connection connection = connectionFactory.createConnection();
  26. connection.start();
  27. // Session erzeugen
  28. Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
  29. // Destination erzeugen (Queue oder Topic)
  30. Destination destination = session.createQueue("VerteilteSysteme.TimestampJobs");
  31. // MessageConsumer f�r die Session zur Destination (hier eine Queue) erzeugen
  32. MessageConsumer consumer = session.createConsumer(destination);
  33. // max. 10 Sekunden auf Nachricht warten
  34. Message message = consumer.receive(10000);
  35. // Einzene Naxchricht als TextMessage aus der Queue nehmen, sofern verf�gbar
  36. if (message instanceof TextMessage) {
  37. TextMessage textMessage = (TextMessage) message;
  38. String text = textMessage.getText();
  39. System.out.println("Empfangene Nachricht: " + text);
  40. } else {
  41. if (message == null)
  42. {
  43. System.out.println("Queue leer - keine Nachricht vorhanden (" + message + ")");
  44. }
  45. else
  46. {
  47. System.out.println("Empfangene Nachricht: " + message);
  48. }
  49. }
  50. consumer.close();
  51. session.close();
  52. connection.close();
  53. } catch (Exception e) {
  54. e.printStackTrace();
  55. }
  56. }
  57. }