在EJB3中,一个MDB(消息驱动Bean)就是一个实现了MessageListener接口的POJO。下面就是一个简单的MDB。
@MessageDriven(activationConfig={
@ActivationConfigProperty(propertyName="destinationType",
propertyValue="javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destination",
propertyValue="queue/testQueue")})
public class SimpleMDB implements MessageListener {
public void onMessage(Message message) {
try {
System.out.println("Receive Message : " + ((TextMessage)message).getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
它要求必须标注为@MessageDriven。它所监听Destination通过标注属性来注入。
下面是一个发送消息的StatelessBean:
@Remote
public interface IMessageSender {
public void sendMessage(String content) throws Exception;
}
@Stateless
@Remote
public class MessageSender implements IMessageSender {
@Resource(mappedName="ConnectionFactory")
private ConnectionFactory factory;
@Resource(mappedName="queue/testQueue")
private Queue queue;
public void sendMessage(String content) throws Exception {
Connection cn = factory.createConnection();
Session session = cn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(queue);
producer.send(session.createTextMessage(content));
}
}
这个EJB只有一个方法SendMessage。ConnectionFactory和Queue通过标注注入。
接下来是客户端:
public class MessageSenderClient {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
props.setProperty(Context.PROVIDER_URL, "localhost:2099");
Context context = new InitialContext(props);
IMessageSender messageSender = (IMessageSender) context.lookup("MessageSender/remote");
messageSender.sendMessage("Hello");
}
}
它通过JNDI查找到上面的EJB,然后调用sengMessage.
分享到:
相关推荐
6. **测试和调试技巧**:掌握如何验证和调试MDB的执行逻辑。 总的来说,"was mdb sample" 是一个实践性的教程,可以帮助开发者深入理解WebSphere环境下基于消息的分布式系统开发,并提供了一个在实际项目中应用这些...
通过深入研究这些源代码,开发者不仅可以掌握JMS和EJB3的集成方式,还能学习到如何设计和实现基于消息的分布式系统。这种知识对于构建健壮、可扩展的企业级应用至关重要。同时,了解源代码中的设计模式和最佳实践,...
通过分析源码,开发者不仅可以掌握系统的运作原理,还能学习到Web开发的最佳实践,提升自身技能。 四、应用场景 李腾飞CMS适用于各种需要内容管理的场合,如企业官网、新闻资讯平台、博客系统、电商网站等。其易用...
### WAS6培训资料:L08-WASv6_Service ...通过本实验的学习,参与者不仅能深入了解WAS v6在服务集成和JMS方面的能力,还能掌握如何配置和运行相关的资源和服务。这对于构建高性能、高可用性的分布式应用至关重要。
在本文中,我们将深入探讨基于JMS(Java Messaging Service)开发JAVAMAIL的相关知识点。首先,我们需要理解JMS和JAVAMAIL这两个技术在Java开发中的作用。 JMS,全称为Java Messaging Service,是Java平台上的标准...
通过深入研究这些源代码,开发者不仅可以了解MDB的工作原理,还能掌握如何在实际项目中集成和配置MDB,以及如何利用JMS进行异步通信。这是一个宝贵的学习资源,有助于提升Java EE开发者的技能和经验。
【Java消息驱动Bean(Message-Driven Bean,MDB)与EJB实例详解】 在Java企业级应用开发中,Message-Driven Bean(MDB)是一种...通过深入研究和运行这些源代码,开发者可以更好地理解和掌握MDB在实际项目中的运用。
学习和理解这些源代码,你可以深入理解如何在实际项目中运用MDB进行异步处理和解耦设计,同时掌握EJB和JMS的结合使用。通过分析和调试这些示例,你可以更好地了解MDB的生命周期、事务处理以及如何与其他EJB或Web组件...
在这个“EJB消息驱动bean Demo”中,我们将深入探讨EJB MDB和JMS如何协同工作以实现异步通信。 首先,JMS是Java平台上的标准API,它定义了生产、发送、接收和消费消息的接口。JMS提供两种消息模型:点对点(Point-...
本指南将深入探讨EJB的最新技术和最佳实践,特别是关注消息驱动bean(Message-Driven Bean,MDB)的使用。 ### EJB概述 EJB分为三种主要类型:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean...
本讲将深入探讨EJB 3.0中的消息驱动Bean(Message Driven Bean,MDB),这是一种特殊类型的EJB,专门设计用于处理JMS(Java Message Service)消息。 消息驱动Bean的主要功能是异步接收和处理消息。这使得应用程序...
综上所述,这篇博客深入浅出地讲解了在Jboss环境下开发和使用消息驱动bean的过程,从理论到实践,包括JMS基础、MDB的创建、配置、测试和实际应用,对于想要学习和掌握EJB和JMS的开发者来说是一份宝贵的资源。...
### 深入解析《ejb学习笔记5》——消息驱动Bean详解 #### 消息驱动Bean概述 消息驱动Bean(MDB,Message Driven Bean)是Enterprise ...掌握MDB的原理和编程技巧对于深入理解EJB框架及其实现异步通信机制至关重要。
MDB是Java EE环境中的一个组件,它作为消息消费者,监听JMS队列或主题,并在接收到消息时自动调用bean的方法。在WebSphere MQ集群环境中,MDBs可以用来处理来自集群中任何队列管理器的消息,增强了应用的响应能力和...
6. **消息服务(JMS、MDB)**:学习Java消息服务(JMS)和消息驱动Bean(MDB),理解异步通信和事件处理机制在企业级应用中的作用。 7. **给EJB增加功能**:深入探讨Bean调用、通用注解、依赖注入和拦截器等高级...
2. 消息驱动Bean(Message-Driven Beans,MDB):这是专门为处理消息队列中的JMS(Java Message Service)消息而设计的组件。它们在后台运行,监听消息,并在收到消息时执行相应的业务逻辑。 3. 实体Bean(Entity ...
- **JMS与MDB的结合**: MDB监听JMS队列或主题,当消息到达时,自动触发Bean的方法,从而实现解耦和异步处理。 - **注解配置**: 使用@MessageDriven注解来声明一个Bean为消息驱动Bean,并通过@...
本资料集全面涵盖了Java EE框架技术,旨在帮助开发者深入理解并掌握这一领域的核心知识。 1. **Servlet与JSP** Servlet是Java EE中处理HTTP请求的核心组件,用于扩展服务器功能。JSP(JavaServer Pages)则是一种...
这个代码集合为学习和理解EJB 3.0、JMS和Web服务提供了宝贵的实践资源,可以帮助开发者深入掌握这些技术,并应用于实际的企业级项目中。通过研究和分析这些代码,你可以了解如何在Java EE环境中有效地集成和利用这些...