`
ysen
  • 浏览: 123068 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jms2 pub2sub模式

    博客分类:
  • EJB
阅读更多

服务端定义了两个消费者

 

@MessageDriven(activationConfig={
		@ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Topic"),
		@ActivationConfigProperty(propertyName="destination",propertyValue="topic/myTopic")
}
)
public class TopicMessageBean01 implements MessageListener {

	public void onMessage(Message msg) {
		TextMessage txtMsg=(TextMessage)msg;
		String s="";
		try {
			s = txtMsg.getText();
		} catch (JMSException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("TopicMessageBean01接收消息:"+s);

	}

}

 

import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

@MessageDriven(activationConfig={
		@ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Topic"),
		@ActivationConfigProperty(propertyName="destination",propertyValue="topic/myTopic")
}
)
public class TopicMessageBean02 implements MessageListener {

	public void onMessage(Message msg) {
		TextMessage txtMsg=(TextMessage)msg;
		String s="";
		try {
			s = txtMsg.getText();
		} catch (JMSException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("TopicMessageBean02接收消息:"+s);

	}

}

 

 

 

 

客户端的发布者代码

 

import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.naming.InitialContext;

public class Test {
	public static void main(String[] args) throws Exception {
		InitialContext context=new InitialContext();
		//获得QueueConnectionFactory
		TopicConnectionFactory factory =(TopicConnectionFactory)context.lookup("TopicConnectionFactory");
		//创建QueueConnection
		TopicConnection conn=factory.createTopicConnection();
		//创建会话
		//p1:与事务有关 true:表示最后提交  false:表示自动提交
		//p2:表示接收方向消息中间件发送确认通知,我们这里采用自动通知类型
		TopicSession session=conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
		//取得destination
		Topic topic=(Topic)context.lookup("topic/myTopic");
		//消息生产者
		MessageProducer publisher=session.createProducer(topic);
		
		//定义消息
		Message msg=session.createTextMessage("消息来了");
		//发送消息
		publisher.send(topic, msg);
		
		session.close();
		conn.close();
	}
}

 

分享到:
评论

相关推荐

    ActiveMQ的处理模式:PTP与PUB/SUB

    在ActiveMQ中,有两种主要的消息处理模式:点对点(Point-to-Point,简称PTP)和发布/订阅(Publish/Subscribe,简称PUB/SUB)。本文将深入探讨这两种模式及其在SpringBoot应用中的实现。 首先,点对点(PTP)模式...

    JMS sub/pub实现聊天系统

    在"JMS sub/pub实现聊天系统"中,我们主要探讨的是如何利用JMS的发布/订阅(Publish/Subscribe)模型来构建一个聊天系统。 在JMS中,有两种消息传递模型:点对点(Point-to-Point)和发布/订阅(Publish/Subscribe...

    SpringBoot集成ActiveMQ

    SpringBoot集成ActiveMQ,ActiveMQ支持队列和主题两种消息发送方式,选择发送方式可以在SpringBoot的配置文件中通过参数spring.jms.pub-sub-domain来控制,值为false表示是队列,值为true表示是主题。

    JMS 简单使用指南

    Pub/Sub模式使用Topic,消息可以被多个订阅者接收。 - **管理对象**:通过JNDI(Java Naming and Directory Interface)查找,包括Connection Factory和Destination,确保与供应商的无关性,便于代码移植。 3. **...

    JMS消息模型 JMS学习.doc

    3. **JMS Domains**:JMS有两种主要的消息模型,即点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)模式。 - **Point-to-Point (PTP)模式**:在这种模型中,消息从一个生产者发送到一个...

    JMS--J2EE培训材料

    2. **发布/订阅(Pub/Sub)**:此模式中,消息被发送到主题(topic),所有订阅该主题的消费者都将收到消息副本。 - **主题(Topic)**:作为消息广播的通道,主题支持广播式的消息传递。 #### 三、JMS应用的组成 一个...

    javax.jms-1.1.jar

    2. **消息模型**:JMS支持两种消息模型——点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。在点对点模型中,消息从一个队列(Queue)中发送到另一个队列,每个消息仅被一个消费者接收。...

    基于soap over jms 的websphere mq与axis2的实现

    JMS支持两种消息模型:点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。 **Websphere MQ** IBM Websphere MQ,通常简称为MQ,是一个功能强大的消息中间件,它允许不同系统之间的应用程序...

    javax.jms包,sun的JMS接口规范包

    2. **消息模型**:JMS支持两种消息传递模型:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。在P2P模型中,每个消息仅由一个消费者接收,通常通过队列实现;在Pub/Sub模型中,消息可以被...

    JAVA消息服务JMS规范及原理详解.docx

    2. **消息模式**:主要有两种,点对点(Point-to-Point, P2P)和发布/订阅(Publish/Subscribe, Pub/Sub)。 - **P2P**模式中,消息通过队列(Queue)进行传递,每个消息有一个特定的消费者(Receiver)。消息在...

    Java-JMS实例

    2. **消息确认模式**:JMS支持多种确认模式,决定何时确认消息已被正确处理。例如: - AUTO_ACKNOWLEDGE:自动确认,消息处理完成后自动确认。 - CLIENT_ACKNOWLEDGE:客户端确认,需要应用程序显式调用...

    JMS 规范(英文)

    1. **消息模型**:JMS支持两种主要的消息模型——点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。在P2P模型中,消息被发送到一个队列,由消费者从队列中获取消息;而Pub/Sub模型下,消息...

    JMS学习手册

    JMS提供了两种消息传递模式:点对点(PTP)和发布/订阅(Pub/Sub)。PTP模式中,消息被放入队列中,然后队列中的消息由一个或多个消费者轮流处理。而在Pub/Sub模式中,消息被发布到主题中,任何订阅了该主题的消费者...

    jms1.1.jar.zip

    1. JMS模型:JMS定义了两种基本的消息模式——点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。点对点模式下,消息由一个生产者发送到一个队列,然后由一个消费者接收;发布/订阅模式中,...

    JMS简明教程(Java消息服务)

    Java消息服务支持两种消息模型:Point-to-Point消息(P2P)和发布订阅消息(Publish Subscribe messaging,简称Pub/Sub)。JMS规范并不要求供应商同时支持这两种消息模型,但开发者应该熟悉这两种消息模型的优势与缺点...

    JMS1.1规范(中文)

    2. **消息队列与主题**:JMS提供两种消息传递模型——点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。在P2P模型中,消息被发送到一个队列,每个消息仅被一个消费者接收。而在Pub/Sub模型...

    JMS中间件ActiveMQ介绍

    - **消息模型**:JMS 支持两种主要的消息模型 —— 点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。 - **可靠消息传输**:确保消息能够准确无误地送达目标。 - **事务支持**:提供了...

    javax.jms.jar包与JMS实例代码

    JMS主要包含两种消息模型:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe, Pub/Sub)。在点对点模型中,消息从一个生产者发送到一个队列,然后由一个或多个消费者接收,每个消息只被一个消费者处理...

    JMS规范培训教程、JMS源代码

    P2P模式下,每个消息只有一个消费者,而Pub/Sub模式下,一个消息可以被多个消费者接收。 4. **事务与持久性**:讲解了如何在JMS中使用事务保证消息传递的可靠性,以及如何设置消息的持久性以确保消息在系统故障后仍...

    JMS异步通信

    JMS Pub/Sub编程** 编程模式与P2P类似,但使用TopicConnection和TopicSession,创建TopicPublisher发送消息,TopicSubscriber接收消息。 **5. 二阶段提交的事务** JMS支持JTA(Java Transaction API)的二阶段提交...

Global site tag (gtag.js) - Google Analytics