首先编写消息驱动bean
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/myQueue") })
public class MessageConsumer implements MessageListener {
public void onMessage(Message message) {
if (message instanceof TextMessage) {
TextMessage tm = (TextMessage) message;
try {
System.out.println(tm.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
这个bean会监听jndi地址queue/myQueue上的消息
发送jms消息步骤:
1、首先从jndi上下文获取一个连接工厂,有TopicConnectionFactory/QueueConnectionFactory两种
2、从连接工厂获取一个连接,同理有QueueConnction/TopicConnection两种
3、通过连接建立一个会话,同理有QueueSession/TopicSession两种
4、通过session创建消息发送者,同理有QueueSender/TopicPublisher两种
5、发送jms消息,有TextMessage,MapMessage,ObjectMessage等
public void jmsQueue(){
QueueConnectionFactory factory = null ;
QueueConnection conn = null;
QueueSender sender = null;
QueueSession session = null ;
Queue queue = null;
try {
factory = (QueueConnectionFactory)this.context.lookup("ConnectionFactory");
conn = factory.createQueueConnection();
session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
queue = (Queue)this.context.lookup("queue/myQueue");
sender = session.createSender(queue);
TextMessage message = session.createTextMessage();
message.setText("hello world");
sender.send(message);
session.close();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(session!=null){
try {
session.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/myTopic") })
public class TopicMessageConsumer1 implements MessageListener{
public void onMessage(Message message) {
if(message instanceof TextMessage){
TextMessage tm = (TextMessage)message;
try {
System.out.println(this.getClass().getName()+":"+tm.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/myTopic") })
public class TopicMessageConsumer implements MessageListener{
public void onMessage(Message message) {
if(message instanceof TextMessage){
TextMessage tm = (TextMessage)message;
try {
System.out.println(this.getClass().getName()+":"+tm.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
public void jmsTopic(){
TopicConnectionFactory factory = null ;
TopicConnection conn = null ;
TopicSession session = null ;
TopicPublisher sender = null ;
TextMessage message = null ;
Topic topic = null ;
try {
factory = (TopicConnectionFactory)this.context.lookup("ConnectionFactory");
conn = factory.createTopicConnection();
session = conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
topic = (Topic)this.context.lookup("topic/myTopic");
sender = session.createPublisher(topic);
message = session.createTextMessage();
message.setText("hello world");
sender.send(message);
session.close();
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
session.close();
} catch (Exception e2) {
}
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<server>
<mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.org.destination:server=Queue,name=accpQueue" >
<attribute name="JNDIName" >queue/myQueue </attribute>
<depends optional-attribute-name = "DestinationManager" >
jboss.mq:service=DestinationManager
</depends>
</mbean>
<mbean code="org.jboss.mq.server.jmx.Topic" name="jboss.mq.destination:service=Topic,name=myTopic">
<attribute name="JNDIName" >topic/myTopic </attribute>
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
</server>
分享到:
相关推荐
sender.sendMessage("Hello, World!"); // 保持应用运行,以便接收消息 context.registerShutdownHook(); } } ``` 这个例子展示了如何在Spring应用中使用Spring JMS和ActiveMQ创建一个简单的消息发送和接收...
Message message = queueSession.createTextMessage("Hello, World!"); queueSender.send(message); ``` 以上代码展示了如何通过JNDI查找ConnectionFactory和Destination,创建Connection、Session以及发送一条文本...
], 'Hello, World!'); // 消息内容 $client->send($message); ``` 4. **订阅和接收消息** 通过`Client`对象的`subscribe`方法订阅主题或队列,然后使用`read`方法接收消息。示例: ```php $client->subscribe...
<mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.esb.helloworld.destination:service=Queue,name=helloworldfile"> <depends optional-attribute-name="ServerPeer">jboss.messaging:...
在本文中,我们将深入探讨如何使用ActiveMQ创建一个基本的"HelloWorld"实例,以便于初学者理解消息队列的工作原理。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了多种消息协议,如OpenWire、AMQP、...
在本篇文章中,我们将关注于使用JBoss ESB创建一个名为“Hello World Action”的示例应用。JBoss ESB是Red Hat JBoss中间件的一部分,它提供了一个开放源码的ESB平台,用于构建和管理SOA(面向服务架构)应用程序。 ...
name="jboss.esb.helloworld.destination:service=Queue,name=helloworldfile" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer ...
TextMessage message = session.createTextMessage("Hello, World!"); return message; } }); ``` 这段代码创建了一个`JmsTemplate102`实例,然后使用`convertAndSend`方法发送一个文本消息到指定的队列。`...
<jms:queue>example.GreetingService</jms:queue> </jms:binding.jms> ``` 在这个配置中,服务通过 JMS 绑定组件暴露,可以接收和响应消息队列中的请求。 **部署与测试** 完成服务的编写和配置后,可以在 ...
融合JMS POC 如何运行: 确保Confluent企业和ActiveMQ都已安装并在默认端口上运行。 ActiveMQ下载: : ,合流下载: : 确保在ActiveMQ和Confluent中都创建了队列(合流中的主题) reply-queue , request-queue和...
【ESB应用Spring_Hello_World】是针对JBoss ESB的一个示例教程,它展示了如何在ESB中集成Spring框架来实现一个简单的服务调用。这个应用的主要目的是演示基于Spring的action调用机制,利用ESB进行消息传递和处理。 ...
jmsTemplate.convertAndSend("Hello, World!"); ``` 同时,为了监听消息,我们可以使用`MessageListenerAdapter`,它允许我们将Java方法映射到消息处理上: ```java MessageListenerAdapter listenerAdapter = new...
TextMessage message = session.createTextMessage("Hello, World!"); producer.send(message); // 接收消息 Message received = consumer.receive(); if (received instanceof TextMessage) { System.out.println...
Destination destination = new ActiveMQQueue("jms_test_queue"); MessageProducer producer = session.createProducer(destination); TextMessage message = session.createTextMessage(); message.setText(...
3.1 HelloWorld实例 3.2 程序代码 3.3 配置文件jboss-service.xml 3.4 将实例部署到JBOSS 3.5 MBean的效果 s四.EJB3.0使用说明 1. Enterprice JavaBeans(EJB)的概念 1.1 会话 Bean: 1.2 实体Bean: 1.3 消息驱动...
import javax.jms.Queue; import javax.jms.Topic; Queue queue = session.createQueue("TestQueue"); Topic topic = session.createTopic("TestTopic"); ``` ##### 消息生产者(Message Producer) 消息生产者是...
std::auto_ptr<cms::TextMessage> message(session->createTextMessage("Hello, World!")); producer->send(message.release()); std::auto_ptr<cms::Message> received = consumer->receive(); ``` 5. **构建...
+ EJB快速上手——HelloWorld入门实例 * 第4课:会话Bean(Session Bean)——发布JNDI服务 + 无状态会话Bean(Stateless Session Bean) + 有状态会话Bean(Stateful Session Bean) + 会话Bean扩展开发 * 第5...