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();
 

简单UDP收发示例

一、UDP发送数据包IPAddress ip = IPAddress.Parse("192.168.1.255");//定义发送的目的IP地址,192.168.1.255表示广播,你也可以改成其他IP...
  • dcsoft
  • dcsoft
  • 2006年10月31日 17:07
  • 3986

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

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

OpenJMS安装配置及其验证测试

Open JMS 安装测试 1、内容简述 开源的JMS服务器openJms,及怎样使用openJms来构建系统之间健全、高度可用的通讯,从而简化企业级应用的开发。openJms符合SUN的JMS ...
  • boonya
  • boonya
  • 2013年09月24日 23:37
  • 1693

C#使用Socket发送和接收TCP数据示例

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T...
  • Momo_Da
  • Momo_Da
  • 2016年11月07日 13:49
  • 3848

如何利用python dbus来发送一个信号

简介dbus用于进程间通信,可以降低不同程序间的耦合性,dbus的原理同分布式计算很象,其中一个介绍原理的网址为:官方的 文档用python来操作dbus很方便,python-dbus的教程: 教程...
  • sahusoft
  • sahusoft
  • 2010年10月10日 19:45
  • 2061

C#使用UdpClient发送和接收UDP数据示例

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin...
  • smartsmile2012
  • smartsmile2012
  • 2017年04月28日 14:39
  • 3138

java 简单的TCP接收数据与发送数据

package com.xiuye.ooooo; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java...
  • xiuye2015
  • xiuye2015
  • 2015年09月08日 15:39
  • 2976

RabbitMQ的简单示例(一)

首先导入jar包RabbitMQ示例图示其中P代表生产者、C表示消费者、中间红色部分代表消息队列生产者代码如下:package com.rabbit;import java.io.IOExceptio...
  • wmh1396853433
  • wmh1396853433
  • 2016年07月18日 11:42
  • 1259

STM32--CAN简单接收和发送

STM32中使用CAN进行数据发送接收的实例
  • zhangxufei
  • zhangxufei
  • 2016年08月27日 15:37
  • 5186

Android SMS发送和接收(示例)

参考链接: http://www.cnblogs.com/xirihanlin/archive/2009/10/18/1585624.html 归纳关键点: 1. manifest.xml中必...
  • jollypigclub
  • jollypigclub
  • 2013年08月23日 15:24
  • 423
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenJMS简单发送、接收示例
举报原因:
原因补充:

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