在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.
分享到:
相关推荐
学习和理解这些源代码,你可以深入理解如何在实际项目中运用MDB进行异步处理和解耦设计,同时掌握EJB和JMS的结合使用。通过分析和调试这些示例,你可以更好地了解MDB的生命周期、事务处理以及如何与其他EJB或Web组件...
6. **测试和调试技巧**:掌握如何验证和调试MDB的执行逻辑。 总的来说,"was mdb sample" 是一个实践性的教程,可以帮助开发者深入理解WebSphere环境下基于消息的分布式系统开发,并提供了一个在实际项目中应用这些...
通过深入研究这些源代码,开发者不仅可以了解MDB的工作原理,还能掌握如何在实际项目中集成和配置MDB,以及如何利用JMS进行异步通信。这是一个宝贵的学习资源,有助于提升Java EE开发者的技能和经验。
【Java消息驱动Bean(Message-Driven Bean,MDB)与EJB实例详解】 在Java企业级应用开发中,Message-Driven Bean(MDB)是一种...通过深入研究和运行这些源代码,开发者可以更好地理解和掌握MDB在实际项目中的运用。
### WAS6培训资料:L08-WASv6_Service ...通过本实验的学习,参与者不仅能深入了解WAS v6在服务集成和JMS方面的能力,还能掌握如何配置和运行相关的资源和服务。这对于构建高性能、高可用性的分布式应用至关重要。
通过深入研究这些源代码,开发者不仅可以掌握JMS和EJB3的集成方式,还能学习到如何设计和实现基于消息的分布式系统。这种知识对于构建健壮、可扩展的企业级应用至关重要。同时,了解源代码中的设计模式和最佳实践,...
本指南将深入探讨EJB的最新技术和最佳实践,特别是关注消息驱动bean(Message-Driven Bean,MDB)的使用。 ### EJB概述 EJB分为三种主要类型:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean...
### 深入解析《ejb学习笔记5》——消息驱动Bean详解 #### 消息驱动Bean概述 消息驱动Bean(MDB,Message Driven Bean)是Enterprise ...掌握MDB的原理和编程技巧对于深入理解EJB框架及其实现异步通信机制至关重要。
3. **消息驱动BEAN(Message Driven Bean,MDB)**:在Java EE环境中,MDB是一种特殊的Enterprise JavaBean,用于处理JMS(Java Message Service)消息。它能够异步接收和处理消息,解耦发送者和接收者,提高系统的...
在Java世界中,J2SE(Java 2 Platform, Standard Edition)是用于开发桌面应用程序的...本压缩包中的"J2SE应用编程Message-Driven Bean设计代码"提供了具体的实现示例,可以帮助开发者深入理解MDB的使用和设计原理。
在本文中,我们将深入探讨基于JMS(Java Messaging Service)开发JAVAMAIL的相关知识点。首先,我们需要理解JMS和JAVAMAIL这两个技术在Java开发中的作用。 JMS,全称为Java Messaging Service,是Java平台上的标准...
综上所述,这篇博客深入浅出地讲解了在Jboss环境下开发和使用消息驱动bean的过程,从理论到实践,包括JMS基础、MDB的创建、配置、测试和实际应用,对于想要学习和掌握EJB和JMS的开发者来说是一份宝贵的资源。...
通过分析源码,开发者不仅可以掌握系统的运作原理,还能学习到Web开发的最佳实践,提升自身技能。 四、应用场景 李腾飞CMS适用于各种需要内容管理的场合,如企业官网、新闻资讯平台、博客系统、电商网站等。其易用...
本讲将深入探讨EJB 3.0中的消息驱动Bean(Message Driven Bean,MDB),这是一种特殊类型的EJB,专门设计用于处理JMS(Java Message Service)消息。 消息驱动Bean的主要功能是异步接收和处理消息。这使得应用程序...
这个代码集合为学习和理解EJB 3.0、JMS和Web服务提供了宝贵的实践资源,可以帮助开发者深入掌握这些技术,并应用于实际的企业级项目中。通过研究和分析这些代码,你可以了解如何在Java EE环境中有效地集成和利用这些...
在这个“EJB消息驱动bean Demo”中,我们将深入探讨EJB MDB和JMS如何协同工作以实现异步通信。 首先,JMS是Java平台上的标准API,它定义了生产、发送、接收和消费消息的接口。JMS提供两种消息模型:点对点(Point-...
IBM工程师编写的文档,如"IBM-JMS",被特别推荐,因为它是由IBM内部专家撰写的,可以提供权威的指导和深入的技术细节。 4. WebSphere MQ与WebSphere Application Server集成: 文档中还提到了WebSphere MQ与...
2. Message-driven Beans(MDB):MDB主要用于处理JMS(Java Message Service)消息。当消息到达队列或主题时,MDB会被激活并处理消息。MDB可以调用其他EJB来执行更复杂的业务逻辑,或者向其他系统发送响应消息。 3...
- **JMS与MDB的结合**: MDB监听JMS队列或主题,当消息到达时,自动触发Bean的方法,从而实现解耦和异步处理。 - **注解配置**: 使用@MessageDriven注解来声明一个Bean为消息驱动Bean,并通过@...