jms简单入门例子

jms即Java消息服务(Java MessageService)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API

它是一个协议,一个API,具体的可以参考http://baike.baidu.com/view/157103.htm

JMS传递的消息类型

1、  TextMessage     简单文本

2、  ObjectMessage   可序列化的对象

3、  MapMessage     属性集合

4、  BytesMessage    字节流

5、  StreamMessage   原始值流

6、  Message         还有无有效负载的消息

 

JMS体系组成元素

1、  JMS提供者

2、  JMS客户

3、  JMS生产者

4、  JMS消费者

5、  JMS消息

6、  JMS队列

 

JMS对象模型

1、  连接工厂(ConnectionFactory)是由管理员创建

2、  JMS连接(Connection)表示JMS客户端和服务器端之间的一个活动的连接

3、  JMS会话(Session)表示JMS客户与JMS服务器之间的会话状态

4、  JMS目的。JMS目的(Destination),又称为消息队列,是实际的消息源。

5、  JMS生产者和消费者。生产者(Message Producer)和消费者(Message Consumer)对象由Session对象创建,用于发送和接收消息。

6、  JMS消息通常有两种类型:点对点(Point-to-Point);发布/订阅(Publish/Subscribe)

ActiveMQ简单例子

publicclass SendMessage {

    privatefinalstatic String URL = "tcp://localhost:61616";

    privatefinalstatic String QUEUE_NAME = "choice.queue";

    publicvoid process(){

       try {

           //1、创建连接工厂类

           ActiveMQConnectionFactory activeMQConnectionFactory = newActiveMQConnectionFactory(URL);

           //2、创建工厂

           Connection connection =activeMQConnectionFactory.createConnection();

           connection.start();

           //3、建立会话session,

           /*

            * 第一个参数是是否使用事务,第二个参数是消费者向发送者确认消息已经接收的方式

            * AUTO_ACKNOWLEDGE(自动通知);

            *CLIENT_ACKNOWLEDGE(客户端自行决定通知时机);

            *DUPS_OK_ACKNOWLEDGE(延时//批量通知)

           */

           Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

           //4、创建目的地(Destination)和消息提供者(MessageSender

           Destination queueDestination = session.createQueue(QUEUE_NAME);

           MessageProducer queueProducer = session.createProducer(queueDestination);

          

           queueProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);//发送方式

           //5、创建消息

           TextMessage txt = session.createTextMessage("Hello ActiveMQ!!!");

           //6、发送消息

           queueProducer.send(txt);

           //关闭对象

           queueProducer.close();

           session.close();

           connection.close();

       } catch (JMSException e) {

           e.printStackTrace();

       }

    }

}

 

---------------------------------------------------------------------------------------------------------------------------------

 

 

publicclass ReceiverMessage {

    privatefinalstatic String URL = "tcp://localhost:61616";

    privatefinalstatic String QUEUE_NAME = "choice.queue";

   

    publicvoid process(){

       try {

           //1、创建连接工厂类

           ActiveMQConnectionFactory activeMQConnectionFactory = newActiveMQConnectionFactory(URL);

           //2、创建工厂

           Connection connection =activeMQConnectionFactory.createConnection();

           connection.start();

           //3、建立会话session,

           /*

            * 第一个参数是是否使用事务,第二个参数是消费者向发送者确认消息已经接收的方式

            * AUTO_ACKNOWLEDGE(自动通知);

            *CLIENT_ACKNOWLEDGE(客户端自行决定通知时机);

            *DUPS_OK_ACKNOWLEDGE(延时//批量通知)

           */

           Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);

           //4、创建目的地(Destination)和消息消费者(MessageConsumer

           Destination queueDestination =session.createQueue(QUEUE_NAME);

           MessageConsumer queueConsumer =session.createConsumer(queueDestination);

           //5、接受消息

           Message message = queueConsumer.receive();

           //6、解析消息

           if(message instanceof TextMessage){

              String txt = ((TextMessage)message).getText();

              System.out.println("接受的消息:" + txt); 

           }

           //关闭对象

           queueConsumer.close();

           session.close();

           connection.close();

       } catch (JMSException e) {

           e.printStackTrace();

       }

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值