JMS点对点的消息发送(一)

/**

* 测试类

* @author Jan

*

*/

public class Test {


private ConnectionFactory cf = null;// 通过这个工厂类就可以得到一个与JMS提供者的连接,即Conection。

private Connection con = null;//与JMS提供者建立的一个连接。可以从这个连接创建一个会话,即Session。

/*

* Destination:消息发送的目的地,也就是前面说的Queue和Topic。

* 创建好一个消息之后,只需要把这个消息发送到目的地,消息的发送者就可以继续做自己的事情,

* 而不用等待消息被处理完成。至于这个消息什么时候,会被哪个消费者消费,完全取决于消息的接受者。

*/

private Queue queue = null;

private Session session = null;// 与JMS提供者建立的一个连接。可以从这个连接创建一个会话,即Session。

/*

* Message:从字面上就可以看出是被发送的消息。它有下面几种类型:

* StreamMessage:Java数据流消息,用标准流操作来顺序的填充和读取。

* MapMessage:一个Map类型的消息;名称为 string 类型,而值为 Java的基本类型。

* TextMessage:普通字符串消息,包含一个String。

* ObjectMessage:对象消息,包含一个可序列化的Java对象

* BytesMessage:二进制数组消息,包含一个byte[]。

* XMLMessage: 一个XML类型的消息。

* 最常用的是TextMessage和ObjectMessage。

*/

private Message mes = null; // 与JMS提供者所建立的会话,通过Session我们才可以创建一个Message。

private MessageProducer producer = null;// 消息的生产者,要发送一个消息,必须通过这个生产者来发送。

private MessageConsumer comsumer = null;// 与生产者相对应,这是消息的消费者或接收者,通过它来接收一个消息。


/**

* 构造函数

*

* @param name

* @throws Exception

*/

public Test(String name) throws Exception {

cf = new ActiveMQConnectionFactory("vm://localhost:801");//获得一个ConnectionFactory工厂

con = cf.createConnection();//从工厂内获得一个连接

con.start();//启动此Connection

queue = new ActiveMQQueue(name);//创建一个一对一的Queue作为Destination。

session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);//从Connction获得一个session会话

mes = session.createTextMessage("hello mes");//设置发送消息的文本


}



/**

* 发送消息

*

* @throws Exception

*/

public void sendMes() throws Exception {

producer = session.createProducer(queue);//创建一个消息的发送者

producer.send(mes);//发送消息

}

/**

* 接收消息

*/

public void receiveMes() throws Exception {

comsumer = session.createConsumer(queue);//创建一个消息的接收者

Message me = comsumer.receive();//接收消息

System.out.println(((TextMessage) me).getText());//输出消息内容

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值