OpenJMS简单发送、接收示例

原创 2006年06月02日 23:05:00
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();
 

相关文章推荐

OpenJMS程序实现消息的发送和接收

1、消息发送者(Sender) package com.boonya.openjms; import java.util.Hashtable; import javax.jms.JMSExcept...
  • boonya
  • boonya
  • 2013年09月24日 23:47
  • 1729

OPENJMS操作消息传输示例

  • 2009年11月29日 21:21
  • 15KB
  • 下载

Java发送邮件简单示例

  • 2015年07月02日 17:41
  • 1KB
  • 下载

最简单的基于Flash的流媒体示例:RTMP推送和接收(ActionScript)

本文记录一些基于Flash的流媒体处理的例子。Flash平台最常见的流媒体协议是RTMP。此前记录的一些基于C/C++的RTMP播放器/推流器,但是没有记录过基于Flash中的ActionScript...

SMTPClient异步发送邮件简单示例

  • 2013年11月11日 14:01
  • 454KB
  • 下载

JavaMail发送邮件的最简单示例

首先需要下载mail.jar文件,我个人通常是使用maven中心库的那个: javax.mail mail 1.4.7 然后就是写一个main方法进行测试就可以了: ...
  • zwyjg
  • zwyjg
  • 2016年04月22日 11:35
  • 630

C# Post数据和接收简单示例【摘】

public partial class Post_Server : System.Web.UI.Page { protected void Page_Load(object sender, ...
  • jumtre
  • jumtre
  • 2014年12月26日 15:51
  • 1986

使用commons-email(1.3.3)发送邮件的简单示例

实得分 package com.huey.dream.email; import java.io.File; import org.apache.commons.mail.DefaultAuthe...

最简单的基于librtmp的示例:接收(RTMP保存为FLV)

本文记录一个基于libRTMP的接收流媒体的程序:Simplest libRTMP Receive。该程序可以将RTMP流保存成本地FLV文件。实际上本文记录的程序就是一个“精简”过的RTMPDump...

Python实现socket信息发送和监听的简单代码示例

最近在研究boost C++库,用于工作中处理大规模高并发TCP连接数据xiang
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenJMS简单发送、接收示例
举报原因:
原因补充:

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