`

深入掌握JMS(十二)MDB

    博客分类:
  • JMS
阅读更多

在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.

分享到:
评论

相关推荐

    was mdb sample

    6. **测试和调试技巧**:掌握如何验证和调试MDB的执行逻辑。 总的来说,"was mdb sample" 是一个实践性的教程,可以帮助开发者深入理解WebSphere环境下基于消息的分布式系统开发,并提供了一个在实际项目中应用这些...

    jms-ejb3 source code

    通过深入研究这些源代码,开发者不仅可以掌握JMS和EJB3的集成方式,还能学习到如何设计和实现基于消息的分布式系统。这种知识对于构建健壮、可扩展的企业级应用至关重要。同时,了解源代码中的设计模式和最佳实践,...

    李腾飞CMS内容管理系统源码

    通过分析源码,开发者不仅可以掌握系统的运作原理,还能学习到Web开发的最佳实践,提升自身技能。 四、应用场景 李腾飞CMS适用于各种需要内容管理的场合,如企业官网、新闻资讯平台、博客系统、电商网站等。其易用...

    was6培训资料:L08-WASv6_Service Integration and JMS.pdf

    ### WAS6培训资料:L08-WASv6_Service ...通过本实验的学习,参与者不仅能深入了解WAS v6在服务集成和JMS方面的能力,还能掌握如何配置和运行相关的资源和服务。这对于构建高性能、高可用性的分布式应用至关重要。

    基于JMS(Java Messaging Service)开发JAVAMAIL详解

    在本文中,我们将深入探讨基于JMS(Java Messaging Service)开发JAVAMAIL的相关知识点。首先,我们需要理解JMS和JAVAMAIL这两个技术在Java开发中的作用。 JMS,全称为Java Messaging Service,是Java平台上的标准...

    基于Java的源码-Message-Driven Bean EJB实例源代码.zip

    通过深入研究这些源代码,开发者不仅可以了解MDB的工作原理,还能掌握如何在实际项目中集成和配置MDB,以及如何利用JMS进行异步通信。这是一个宝贵的学习资源,有助于提升Java EE开发者的技能和经验。

    基于Java的实例源码-Message-Driven Bean EJB实例源代码.zip

    【Java消息驱动Bean(Message-Driven Bean,MDB)与EJB实例详解】 在Java企业级应用开发中,Message-Driven Bean(MDB)是一种...通过深入研究和运行这些源代码,开发者可以更好地理解和掌握MDB在实际项目中的运用。

    Message-Driven Bean EJB实例源代码.7z

    学习和理解这些源代码,你可以深入理解如何在实际项目中运用MDB进行异步处理和解耦设计,同时掌握EJB和JMS的结合使用。通过分析和调试这些示例,你可以更好地了解MDB的生命周期、事务处理以及如何与其他EJB或Web组件...

    EJB消息驱动bean Demo

    在这个“EJB消息驱动bean Demo”中,我们将深入探讨EJB MDB和JMS如何协同工作以实现异步通信。 首先,JMS是Java平台上的标准API,它定义了生产、发送、接收和消费消息的接口。JMS提供两种消息模型:点对点(Point-...

    EJB最新技术开发指南

    本指南将深入探讨EJB的最新技术和最佳实践,特别是关注消息驱动bean(Message-Driven Bean,MDB)的使用。 ### EJB概述 EJB分为三种主要类型:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean...

    ejb3.0第11讲 --开发消息驱动bean

    本讲将深入探讨EJB 3.0中的消息驱动Bean(Message Driven Bean,MDB),这是一种特殊类型的EJB,专门设计用于处理JMS(Java Message Service)消息。 消息驱动Bean的主要功能是异步接收和处理消息。这使得应用程序...

    Jboss下开发ejb应用之一消息驱动bean的应用

    综上所述,这篇博客深入浅出地讲解了在Jboss环境下开发和使用消息驱动bean的过程,从理论到实践,包括JMS基础、MDB的创建、配置、测试和实际应用,对于想要学习和掌握EJB和JMS的开发者来说是一份宝贵的资源。...

    ejb 学习笔记5

    ### 深入解析《ejb学习笔记5》——消息驱动Bean详解 #### 消息驱动Bean概述 消息驱动Bean(MDB,Message Driven Bean)是Enterprise ...掌握MDB的原理和编程技巧对于深入理解EJB框架及其实现异步通信机制至关重要。

    WebSphere_MQ集群资料

    MDB是Java EE环境中的一个组件,它作为消息消费者,监听JMS队列或主题,并在接收到消息时自动调用bean的方法。在WebSphere MQ集群环境中,MDBs可以用来处理来自集群中任何队列管理器的消息,增强了应用的响应能力和...

    Study EJB_Note

    6. **消息服务(JMS、MDB)**:学习Java消息服务(JMS)和消息驱动Bean(MDB),理解异步通信和事件处理机制在企业级应用中的作用。 7. **给EJB增加功能**:深入探讨Bean调用、通用注解、依赖注入和拦截器等高级...

    EJB书籍EJB书籍

    2. 消息驱动Bean(Message-Driven Beans,MDB):这是专门为处理消息队列中的JMS(Java Message Service)消息而设计的组件。它们在后台运行,监听消息,并在收到消息时执行相应的业务逻辑。 3. 实体Bean(Entity ...

    EJB3.0开发入门 Step by Step (图文讲解)

    - **JMS与MDB的结合**: MDB监听JMS队列或主题,当消息到达时,自动触发Bean的方法,从而实现解耦和异步处理。 - **注解配置**: 使用@MessageDriven注解来声明一个Bean为消息驱动Bean,并通过@...

    Java EE框架技术资料

    本资料集全面涵盖了Java EE框架技术,旨在帮助开发者深入理解并掌握这一领域的核心知识。 1. **Servlet与JSP** Servlet是Java EE中处理HTTP请求的核心组件,用于扩展服务器功能。JSP(JavaServer Pages)则是一种...

    ejb3.0代码集合,每个技术都有了

    这个代码集合为学习和理解EJB 3.0、JMS和Web服务提供了宝贵的实践资源,可以帮助开发者深入掌握这些技术,并应用于实际的企业级项目中。通过研究和分析这些代码,你可以了解如何在Java EE环境中有效地集成和利用这些...

Global site tag (gtag.js) - Google Analytics