创建一个简单的JMS应用
1.1使用jmsapi创建JMS 应用的步骤
1.需要一个jms连接工厂
2.使用工厂创建jms连接
3.开启连接
4.通过连接创建session
5.取得一个destination
6.创建一个生产者
7.创建一个消费者
8.发送或接受消息
9.关闭所有资源.
PS: ConnectionFactory,Connection,Destination支持并发访问,Session,MessageProducer,MessageConsumer不支持并发访问
1.2一个简单的生产者和消费者(点对点队列模式queue)例子
生产者:
public class SimpleProducer { private static String brokerURL = "tcp://localhost:61616"; private static ConnectionFactory factory= null; private static Connection connection= null; private static Session session = null; private static Destination destination = null; private static MessageProducer mp = null; public static void main(String[] args) throws Exception { factory = new ActiveMQConnectionFactory(brokerURL); connection = factory.createConnection(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); destination = session.createQueue("zcf"); mp = session.createProducer(destination); Message message = session.createTextMessage("hah"); mp.send(message); } }
消费者:
public class SimpleResumer { private static String brokerURL = "tcp://localhost:61616"; private static ConnectionFactory factory= null; private static Connection connection= null; private static Session session = null; public static void main(String[] args) throws Exception { factory = new ActiveMQConnectionFactory(brokerURL); connection = factory.createConnection(); connection.start(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue("zcf"); MessageConsumer consumer = session.createConsumer(destination); Message message = consumer.receive(); TextMessage textMessage = (TextMessage) message; System.out.println(textMessage.getText()); /* ; mp = session.createProducer(destination); Message message = session.createTextMessage("hah"); mp.send(message);*/ } }
消费者异步消费:
public class SimpleResumerAsync { private static String brokerURL = "tcp://localhost:61616"; private static ConnectionFactory factory= null; private static Connection connection= null; private static Session session = null; public static void main(String[] args) throws Exception { factory = new ActiveMQConnectionFactory(brokerURL); connection = factory.createConnection(); connection.start(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue("zcf"); MessageConsumer consumer = session.createConsumer(destination); consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { System.out.println(message); } }); } }
1.3一个简单的发布订阅模式(一对多非持久化)例子
package com.zcf.activemq.simpleexample; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageListener; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; /** * 异步接受消息 * @author cfzhou * */ public class SimpleTopicResumerAsync { private static String brokerURL = "tcp://localhost:61616"; private static ConnectionFactory factory= null; private static Connection connection= null; private static Session session = null; public static void main(String[] args) throws Exception { factory = new ActiveMQConnectionFactory(brokerURL); connection = factory.createConnection(); connection.start(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); new Thread(new ResumerThread()).start(); } private static class ResumerThread implements Runnable{ @Override public void run() { for(int i = 0 ;i < 3;i++){ try { Destination destination = session.createTopic("topic"); MessageConsumer consumer = session.createConsumer(destination); consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { System.out.println(message); } }); } catch (JMSException e) { e.printStackTrace(); } } } } }
package com.zcf.activemq.simpleexample; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageListener; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; /** * 异步接受消息 * @author cfzhou * */ public class SimpleQueueResumerAsync { private static String brokerURL = "tcp://localhost:61616"; private static ConnectionFactory factory= null; private static Connection connection= null; private static Session session = null; public static void main(String[] args) throws Exception { factory = new ActiveMQConnectionFactory(brokerURL); connection = factory.createConnection(); connection.start(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue("zcf"); MessageConsumer consumer = session.createConsumer(destination); consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { System.out.println(message); } }); } }
相关推荐
3. 创建 JMS 模块:创建 JMS 模块是 JMS 配置的第三步,JMS 模块是 JMS 服务器的配置文件。 4. 添加 JMS 资源构件:添加 JMS 资源构件是 JMS 配置的第四步,JMS 资源构件是 JMS 消息的提供者。 5. 添加 JMS 连接工厂...
在"JMS示例"中,通常会展示如何创建一个简单的消息生产和消费流程: 1. **创建连接工厂(ConnectionFactory)**:这是连接到消息代理的桥梁,JMS API提供创建连接工厂的方法。 2. **创建连接(Connection)**:...
9. **依赖管理和构建工具**:现代JavaEE开发常使用Maven或Gradle等构建工具进行依赖管理,虽然源码包中没有明确列出,但这些工具能帮助开发者组织项目结构、管理第三方库,并自动化构建过程。 通过分析这些源码,...
4. **JBoss ESB工程创建**:创建一个JBoss ESB工程是使用JMS Router的第一步。虽然操作过程未详细描述,通常包括安装和配置JBoss ESB服务器,创建一个新的ESB项目,并导入必要的库和依赖。 5. **消息队列配置**:在...
在本资源中,“经典Java EE企业应用开发实战第二章源码”是一个针对Java EE企业级应用开发的学习资料,主要关注的是实际操作和编程实践。Java EE(Enterprise Edition),也被称为Java SE(Standard Edition)的扩展...
### 第三章:JMS消息 本章详细讲解了JMS消息的类型(如文本消息、映射消息、对象消息等),以及如何使用JMS API构造和解析这些消息。特别强调了如何利用消息属性和消息选择器进行高级消息处理。 ### 第四章:点对...
1. **广泛的支持与兼容性**:作为第一个获得广泛跨行业支持的企业消息传递API,JMS确保了开发者可以轻松地与不同的消息中间件集成。 2. **简化应用程序开发**:通过标准化的消息传递概念和惯例,JMS简化了企业应用...
第3章JMS通用设施 JMS提供了一些通用设施以帮助开发者更好地管理和使用消息服务。这些设施包括被管理的对象(如目的地和连接工厂)、连接、会话、消息生产者和消费者。JMS定义了不同的目的地类型,如队列(Queue)和...
创建JMS服务器是配置JMS的第一步。在WebLogic管理控制台中,导航到“服务”>“JMS”>“JMS服务器”,然后点击“新建”按钮。你需要为JMS服务器提供一个名称,并选择一个服务器实例来承载这个JMS服务器。JMS服务器将...
### 第三步:创建目标资源 目标资源是消息的目标点,如队列或主题。在"目标资源"下,点击"目标" -> "新建",选择"主题空间",然后按照向导设置标识,最后点击"完成"。 ### 第四步:配置主题连接工厂 主题连接工厂...
在本教程中,我们将探讨如何在WebLogic环境中创建一个简单的EJB(Enterprise JavaBean)项目。 首先,我们需要了解EJB的基本概念。EJB是Java EE平台的核心组件之一,它为开发可部署在服务器端的企业级应用提供了...
在WLS(WebLogic Server)8.1版本中,JMS有了显著增强,包括简化对远程和第三方JMS提供者的访问,通过EJB和Servlet轻松访问JMS,动态删除队列或主题目的地,重发消息时保持顺序,阻塞发送消息,以及更好的过期消息...
前面多次提到 JMS 提供者,因为 JMS 给我们提供的只是一系列接口,当我们使用一个 JMS 的时候,还是需要一个第三方的提供者,它的作用就是真正管理这些 Connection、Session、Topic 和 Queue 等。 JMS 入门的知识点...
在企业级IT环境中,WebLogic Server是Oracle公司提供的一个强大且功能丰富的Java EE应用程序服务器,广泛用于构建、部署和管理企业级应用。本章节将深入探讨WebLogic在实际操作中的运用,以“企业级WebLogic应用第二...
本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的入门实例。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了JMS规范,提供...
在连接池实现中,我们需要一个池化的ConnectionFactory,这通常通过第三方库如Apache Commons Pool或HikariCP来实现。这个Factory会负责创建和管理JMS Connection实例。 3. **配置连接池**:配置连接池参数,包括...
Java程序设计及应用开发教程是面向初学者和进阶者的一门重要课程,旨在深入讲解Java编程语言的基础知识以及在实际应用中的...无论是准备参加面试,还是希望在工作中提升Java技术水平,这门教程都是一个很好的学习资源。
1. **Servlet**:Servlet是Java EE的核心组件之一,它是一个Java类,用于扩展服务器的功能。在第12-14章中,可能涉及了Servlet的生命周期、请求响应处理、会话管理以及Servlet与JSP的协同工作。 2. **JSP(Java...