OpenJMS简单发送、接收示例

MOM(Message Oriented Middleware 面向消息的中间件)
集成应用系统的强大工具(松散耦合)
MOM提供在不同应用程序之间传递消息的服务
程序员不必考虑:消息握手、发送保证、定时、事务等
          
首先有以下几个概念:
TextMessage:   要发送的消息内容
MessageProducer:   消息发送者
MessageConsumer:   消息接收者
Destination:   目的地
Session:   QueueSession、TopicSession类所实现的接口。一个单线程的context
Connection:   连接
ConnectionFactory:   连接工厂
Context:   JNDI context
prop用的是Hashtable不是HashMap
 
1.  要想发送messge,需要一个发送者(MessageProducer)和发送的内容(TextMessage);
2.  TextMessage由session.createTextMessage(s)生成
3.  MessageProducer由session.createProducer(destination)生成
4.  destination由context.lookup(“queue1”)生成
5.  session由连接生成connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
6.  connection由connectionFactory.createConnection();生成
7.  connectionFactory由context.lookup生成
8.  context由new InitialContext(prop)得到
9.  prop就是一个hashtable,里面需要设置两个属性
Context.INITIAL_CONTEXT_FACTORY=“com.exolab.jms.jndi.InitialContextFactory”
Context.PROVIDER_URL=“tcp://localhost:3035”
 
 
一、初始工作
Hashtable prop = new Hashtable();
porp.put(Context.INITIAL_CONTEXT_FACTORY,”org.exolab.jms.jndi.InitialContextFactory”);
prop.put(Context.PROVIDER_URL,”tcp://localhost:3035”);
Context context = new InitialContext(prop);
ConnectionFactory factory = (ConnectionFactory)context.lookup(“ConnectionFactory”);
Connection connection = factory.createConnection();
connection.start();
Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
Destination dest = (Destination)context.lookup("queue1");
 
二、消息的发送
MessageProducer sender = session.createProducer(dest);
TextMessage message = session.createTextMessage("hahahaha");
sender.send(message);
 
三、消息的同步接收
MessageConsumer consumer = session.createConsumer(dest);
Message message = consumer.receive();
 
四、消息的异步接收
receiver.setMessageListener(new MessageListener(){
   public void onMessage(Message arg0) {
     try {
           System.out.println(((TextMessage)arg0).getText());
     } catch (JMSException e) {
           e.printStackTrace();
     }
   }
});
connection.start();
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值