ActiveMqUtil.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package com.yihu.hos.common;
  2. import com.yihu.hos.common.activeMq.ActiveMqConstants;
  3. import com.yihu.hos.common.activeMq.ActivemqConfiguration;
  4. import org.apache.activemq.ActiveMQConnectionFactory;
  5. import javax.jms.*;
  6. import java.util.Map;
  7. import java.util.concurrent.ConcurrentHashMap;
  8. /**
  9. * @author HZY
  10. * @vsrsion 1.0
  11. * Created at 2016/8/22.
  12. */
  13. //@Component
  14. public class ActiveMqUtil {
  15. static ConnectionFactory connectionFactory;
  16. static Connection connection = null;
  17. static Session session;
  18. static Map<String, MessageProducer> sendQueues = new ConcurrentHashMap<String, MessageProducer>();
  19. static Map<String, MessageConsumer> getQueues = new ConcurrentHashMap<String, MessageConsumer>();
  20. static {
  21. ActivemqConfiguration configuration = new ActivemqConfiguration();
  22. connectionFactory = new ActiveMQConnectionFactory(
  23. ActiveMqConstants.ACTIVE_MQ_USER,
  24. ActiveMqConstants.ACTIVE_MQ_PASS,
  25. ActiveMqConstants.ACTIVE_MQ_URI);
  26. try
  27. {
  28. connection = connectionFactory.createConnection();
  29. connection.start();
  30. session = connection.createSession(Boolean.FALSE.booleanValue(),
  31. 1);
  32. }
  33. catch (Exception e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. static MessageProducer getMessageProducer(String name) {
  38. if (sendQueues.containsKey(name))
  39. return ((MessageProducer)sendQueues.get(name));
  40. try
  41. {
  42. Destination destination = session.createQueue(name);
  43. MessageProducer producer = session.createProducer(destination);
  44. sendQueues.put(name, producer);
  45. return producer;
  46. } catch (JMSException e) {
  47. e.printStackTrace();
  48. }
  49. return ((MessageProducer)sendQueues.get(name));
  50. }
  51. static MessageConsumer getMessageConsumer(String name) {
  52. if (getQueues.containsKey(name))
  53. return ((MessageConsumer)getQueues.get(name));
  54. try
  55. {
  56. Destination destination = session.createQueue(name);
  57. MessageConsumer consumer = session.createConsumer(destination);
  58. getQueues.put(name, consumer);
  59. return consumer;
  60. } catch (JMSException e) {
  61. e.printStackTrace();
  62. }
  63. return ((MessageConsumer)getQueues.get(name));
  64. }
  65. public static void sendMessage(String queue, String text) {
  66. try {
  67. TextMessage message = session.createTextMessage(text);
  68. getMessageProducer(queue).send(message);
  69. // log.info("sendMessage " + queue + "\t\t" + text);
  70. }
  71. catch (JMSException e) {
  72. e.printStackTrace();
  73. }
  74. }
  75. public static String getMessage(String queue)
  76. {
  77. try {
  78. TextMessage message = (TextMessage)getMessageConsumer(queue).receive(10000L);
  79. if (message != null)
  80. return message.getText();
  81. } catch (JMSException e) {
  82. e.printStackTrace();
  83. }
  84. return null;
  85. }
  86. public static void close() {
  87. try {
  88. session.close();
  89. } catch (JMSException e) {
  90. e.printStackTrace();
  91. }
  92. try {
  93. connection.close();
  94. } catch (JMSException e) {
  95. e.printStackTrace();
  96. }
  97. }
  98. }