`

深入掌握JMS(十二):MDB

阅读更多

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

 

文章来源:http://www.cnblogs.com/guthing/archive/2010/06/12/1757189.html

分享到:
评论

相关推荐

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

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

    was mdb sample

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

    基于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在实际项目中的运用。

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

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

    jms-ejb3 source code

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

    EJB最新技术开发指南

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

    ejb 学习笔记5

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

    webservice

    3. **消息驱动BEAN(Message Driven Bean,MDB)**:在Java EE环境中,MDB是一种特殊的Enterprise JavaBean,用于处理JMS(Java Message Service)消息。它能够异步接收和处理消息,解耦发送者和接收者,提高系统的...

    J2SE.design.Message.Driven.Bean.rar_Java编程_Java_

    在Java世界中,J2SE(Java 2 Platform, Standard Edition)是用于开发桌面应用程序的...本压缩包中的"J2SE应用编程Message-Driven Bean设计代码"提供了具体的实现示例,可以帮助开发者深入理解MDB的使用和设计原理。

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

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

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

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

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

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

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

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

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

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

    EJB消息驱动bean Demo

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

    MQjava基础编程.pdf

    IBM工程师编写的文档,如"IBM-JMS",被特别推荐,因为它是由IBM内部专家撰写的,可以提供权威的指导和深入的技术细节。 4. WebSphere MQ与WebSphere Application Server集成: 文档中还提到了WebSphere MQ与...

    各种EJB之间的调用示例

    2. Message-driven Beans(MDB):MDB主要用于处理JMS(Java Message Service)消息。当消息到达队列或主题时,MDB会被激活并处理消息。MDB可以调用其他EJB来执行更复杂的业务逻辑,或者向其他系统发送响应消息。 3...

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

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

Global site tag (gtag.js) - Google Analytics