activeMQ发布订阅模式中中常用工具类

转载 2017年09月17日 04:28:48
package com.jms;
 
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
 
import javax.jms.BytesMessage;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
 
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.clapper.util.logging.Logger;
 
import com.pzoom.dsa.common.util.Log;
import com.pzoom.dsa.nerd.mysql.DBQueryHelper;
 
public class Jms
{
  static ConnectionFactory connectionFactory;
  static Connection connection = null;
  static Session session;
  static Map<String, MessageProducer> sendQueues = new ConcurrentHashMap<String, MessageProducer>();
 
  static Map<String, MessageConsumer> getQueues = new ConcurrentHashMap<String, MessageConsumer>();
 
  static Log log=Log.getLogger(DBQueryHelper.class);
 
  static {
    connectionFactory = new ActiveMQConnectionFactory(
      ActiveMQConnection.DEFAULT_USER, 
      ActiveMQConnection.DEFAULT_PASSWORD, 
      "tcp://10.100.100.100:61616?wireFormat.maxInactivityDuration=0");
    try
    {
      connection = connectionFactory.createConnection();
 
      connection.start();
 
      session = connection.createSession(Boolean.FALSE.booleanValue(), 
        1);
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
 
  static MessageProducer getMessageProducer(String name) {
    if (sendQueues.containsKey(name))
      return ((MessageProducer)sendQueues.get(name));
    try
    {
      Destination destination = session.createQueue(name);
      MessageProducer producer = session.createProducer(destination);
      sendQueues.put(name, producer);
      return producer;
    } catch (JMSException e) {
      e.printStackTrace();
    }
 
    return ((MessageProducer)sendQueues.get(name));
  }
 
  static MessageConsumer getMessageConsumer(String name) {
    if (getQueues.containsKey(name))
      return ((MessageConsumer)getQueues.get(name));
    try
    {
      Destination destination = session.createQueue(name);
      MessageConsumer consumer = session.createConsumer(destination);
      getQueues.put(name, consumer);
      return consumer;
    } catch (JMSException e) {
      e.printStackTrace();
    }
 
    return ((MessageConsumer)getQueues.get(name));
  }
 
  public static void sendMessage(String queue, String text) {
    try {
      TextMessage message = session.createTextMessage(text);
      getMessageProducer(queue).send(message);
     // log.info("sendMessage " + queue + "\t\t" + text);
    }
    catch (JMSException e) {
      e.printStackTrace();
    }
  }
   
  
   
  public static String getMessage(String queue)
  {
    try {
      TextMessage message = (TextMessage)getMessageConsumer(queue).receive(10000L);
      if (message != null) 
      return message.getText();
    } catch (JMSException e) {
      e.printStackTrace();
    }
    return null;
  }
 
  public static void close() {
    try {
      session.close();
    } catch (JMSException e) {
      e.printStackTrace();
    }
    try {
      connection.close();
    } catch (JMSException e) {
      e.printStackTrace();
    }
  }
}

相关文章推荐

activeMQ发布订阅模式中中常用工具类

package com.jms; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import javax...

Android中常用工具类2

Android中常用工具类2 分类: Android 2013-02-21 15:15 118人阅读 评论(0) 收藏 举报 多线程断点下载 MainActivit...

Android中常用工具类

1.android dp和px之间转换 2.android 对话框样式 3.android 根据uri获取路径 4.android 根据uri获取真实路径 5.android 还原短信 6....

Android 中常用工具类封装

原文地址:http://www.cnblogs.com/cr330326/p/4422507.html 1、MD5工具类 public class MD5Util { public...

【java中常用工具类的总结】System类,Runtime类,Date类,Calendar类,Math类

【基本定义】 System:类中方法或者属性都是静态的,不能被实例化 out:标准输出,默认是控制台 in:标准输入,默认是键盘 【重点】描述系统的加载信息: 1.获取系统属性信息的方法 Prope...

Java工作中常用工具类总结一

一、String工具类 [java] view plaincopyprint? package com.mkyong.common;       ...

Spark中常用工具类Utils的简明介绍

《深入理解Spark:核心思想与源码分析》一书前言的内容请看链接《深入理解SPARK:核心思想与源码分析》一书正式出版上市 《深入理解Spark:核心思想与源码分析》一书第一章的内容请看链接《第...

Android开发中常用工具类总结

出自:http://blog.csdn.net/krislight/article/details/11354119 项目中常会遇到的工具类 总结留存 首先Activi...

Spark中常用工具类Utils的简明介绍

Utils是Spark中最常用的工具类之一,如果不关心其实现,也不会对理解Spark有太多影响。但是对于Scala或者Spark的初学者来说,通过了解Utils工具类的实现,也是个不错的入门途径。下面...

spring中常用工具类

spring中常用工具类 文件资源操作       Spring 定义了一个 org.springframework.core.io.Resource 接口,Resource 接口是为了统一各种类型不...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)