MDB是一个当消息达到时被容器调用的异步消息消费程序。
MDB用来处理基于消息的请求组件,它是一个异步的无状态Session Bean
在MDB中,Web端发送消息的一般步骤如下:
1、查找一个JNDI来初始化上下文环境,如:
Properties props = new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "localhost:1099");
props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming");
InitialContext ctx = new InitialContext(props);
2、根据上下文环境来查找一个连接工厂QueueConnectionFactory或者TopicConnectFactory,P2P模型中应用的是QueueConnectionFactory,Pub/Sub模型中应用的是TopicConnectFactory,如下代码:
QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("ConnectionFactory");
3、从连接工厂获得一个连接,如:
conn = factory.createQueueConnection();
conn = factory.createQueueConnection();
4、通过连接来建立一个Session,如:
session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
5、查找目的地:
Destination destination = (Queue) ctx.lookup("queue/BeanTest");
6、根据会话,目的地建立消息生产者:
// 创建消息生产者
MessageProducer producer = session.createProducer(destination);
// 创建所要发送的文本信息
TextMessage msg = session.createTextMessage("Bean测试");
// 发送消息
producer.send(msg);
分享到:
相关推荐
@MessageDriven(activationConfig={ @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"), @ActivationConfigProperty(propertyName="destination", propertyValue=...
EJB3图文教程之开发Message Driven Bean
- `@MessageDriven`: 这是定义一个MDB的基本注解,它指明了bean的角色。你需要在类上添加这个注解,并指定消息驱动接口,例如`@MessageDriven(name = "MyMDB", activationConfig = { @ActivationConfigProperty...
基于java的开发源码-Message-Driven Bean EJB实例源代码.zip 基于java的开发源码-Message-Driven Bean EJB实例源代码.zip 基于java的开发源码-Message-Driven Bean EJB实例源代码.zip 基于java的开发源码-Message-...
一个MDB类必须实现MessageListener 接口。当容器检测到bean守候的队列一条消息时,就调用onMessage()方法,将消息作为参数传入。MDB在OnMessage()中决定如何处理该消息。你可以用注释来配置MDB 监听哪一条队列。当...
- 使用`@MessageDriven`注解标记该类,指定JMS目的地类型(队列或主题),以及其他配置属性。 - 在ejb-jar.xml或元数据注解中配置MDB,如JNDI名称、消息驱动适配器等。 6. **源代码解析**: 压缩包中的源代码...
在EJB项目中,我们需要在ejb-jar.xml或@MessageDriven注解中配置MDB的相关属性,如消息监听接口、JMS目的地类型(队列或主题)、JNDI名称等。 **4. MDB的源码分析** 在提供的源码中,我们可能会看到以下关键组件: ...
2. **编写MDB类**:MDB类需要实现`javax.ejb.MessageDrivenBean`接口或者继承`javax.jms.MessageListener`接口,并标注`@MessageDriven`注解。这个注解包含了JMS目的地的配置信息,如目的地类型、激活配置等。 3. *...
- 使用`@MessageDriven`注解来声明bean是一个MDB,并指定JMS配置,如目的地类型(队列或主题)、消息驱动适配器等。 - 可以通过`@ActivationConfigProperty`注解进一步配置MDB的行为,例如设置消息选择器、最大...
Java Message-Driven Bean(MDB)是企业级Java(EJB)技术的一部分,它主要用于处理Java消息服务(JMS)中的消息。在Java EE环境中,MDBs是无状态的bean,它们作为后台服务运行,监听消息队列或主题,并对到来的消息...
1. **MDB类定义**:MDB类需要实现 javax.jms.MessageListener 接口,并且通常会带有 @MessageDriven 注解。例如: ```java import javax.ejb.MessageDriven; import javax.jms.MessageListener; import javax.jms....
7. **部署**:在EJB 3.1及更高版本中,MDB的部署变得更加简单,可以使用注解(如`@MessageDriven`)来代替XML配置,进一步简化了开发过程。 在这个源代码实例中,你可能会看到以下几个关键部分: 1. **MDB类**:...
"基于Java的实例开发源码-Message-Driven Bean EJB实例源代码.zip" 这个标题揭示了本次讨论的核心内容,即一个关于Java编程的实例项目,特别是涉及了Java企业版(Java EE)中的Message-Driven Bean(MDB)组件。...
Java中的Message-Driven Bean (MDB) 是Enterprise JavaBeans (EJB) 规范的一部分,用于处理JMS(Java Message Service)消息。这个压缩包“基于Java的源码-Message-Driven Bean EJB实例源代码.zip”显然包含了实现...
在EJB3中,创建一个MDB非常简单,只需要在bean类上添加`@MessageDriven`注解,并指定消息驱动的类型,如`@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")`来定义...
### Message-Driven Bean (MDB) 培训知识点解析 #### 一、Java消息服务(JMS) **1.1 Java消息服务概念** Java消息服务(Java Message Service,简称JMS)是一种面向消息中间件的标准API,它使得Java应用程序能够...
在这个进阶案例中,我们将深入探讨ejb3的三大主要组件:Session Bean、实体Bean以及MessageDriven Bean,并在JBoss 5应用服务器环境下进行实战演练。 **1. Session Bean** Session Bean是ejb3中的服务组件,用于...
消息驱动bean(Message driven bean,MDB)专门用于处理JMS消息。每个MDB都有自己的实例池。当JMS客户端发送消息时,EJB容器会从池中选取一个实例来处理消息。处理完成后,实例返回池中等待下一次消息。这种机制确保...