- 浏览: 449882 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
鱼里的yeol:
正在学习EJB 感觉有些吃力
Ejb3学习之二----Ejb3的Ejb Bean类型介绍 -
phoenix5870:
默认就是singleton的。
Spring中的Singleton模式和Java中的Singleton模式 -
jhys7s8jd:
pdf打印机下载 无水印http://www.onlinedo ...
PDFCreate工具的使用 -
wang371134086:
:e vil:
浅谈Struts2中的拦截器实现责任链模式 -
liu765023051:
亲,local与remote有什么区别呢
EJB学习之三---Local和Remote接口
前面已经介绍过EJB的Session Bean,这篇文章主要介绍EJb的消息驱动bean---MDB.
Key
消息驱动Bean定义
发布消息方式
实现MDB
Sample
一 消息驱动Bean定义
二 发布消息方式
1. P2P(Point to Point)
2. Pub-Sub(Publish/Subcrib)
三 实现MDB
四 Sample:
1. P2P的MDB
1) 消息驱动EJB:QueueMdbBean
2)MDB client:
2. PUB/SUB的MDB
1) 消息驱动EJB:TopicMdbBean
2)MDB client:
Key
消息驱动Bean定义
发布消息方式
实现MDB
Sample
一 消息驱动Bean定义
二 发布消息方式
1. P2P(Point to Point)
2. Pub-Sub(Publish/Subcrib)
三 实现MDB
四 Sample:
1. P2P的MDB
1) 消息驱动EJB:QueueMdbBean
import javax.ejb.ActivationConfigProperty; import javax.ejb.MessageDriven; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; /** * @author Jamson Huang * */ @MessageDriven( activationConfig={ @ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Queue"), @ActivationConfigProperty(propertyName="destination",propertyValue="queue/QueueMdb") } ) /*P2P*/ public class QueueMdbBean implements MessageListener { /* (non-Javadoc) * @see javax.jms.MessageListener#onMessage(javax.jms.Message) */ public void onMessage(Message msg) { try{ TextMessage txtMsg = (TextMessage)msg; System.out.println("Queue Text:"+ txtMsg.getText()); }catch(Exception ex){ ex.printStackTrace(); } } }
2)MDB client:
import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueSender; import javax.jms.QueueSession; import javax.jms.TextMessage; import javax.naming.InitialContext; /** * @author Jamson Huang * */ public class QueueMdbEjbBeanClient { /** * @param args */ public static void main(String[] args) throws Exception { InitialContext context = new InitialContext(); QueueConnectionFactory factory = (QueueConnectionFactory)context.lookup("ConnectionFactory"); QueueConnection conn = factory.createQueueConnection(); QueueSession session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE); Queue queue = (Queue)context.lookup("queue/QueueMdb"); TextMessage txtMsg = session.createTextMessage("Hello world, Jamson"); QueueSender sender = session.createSender(queue); sender.send(txtMsg); System.out.println(txtMsg.getText()); session.close(); conn.close(); System.out.println("queue has been sent!"); } } }
2. PUB/SUB的MDB
1) 消息驱动EJB:TopicMdbBean
import javax.ejb.ActivationConfigProperty; import javax.ejb.MessageDriven; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; /** * @author Jamson Huang * */ @MessageDriven( activationConfig={ @ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Topic"), @ActivationConfigProperty(propertyName="destination",propertyValue="topic/TopicMdb") } ) public class TopicMdbBean implements MessageListener { /* (non-Javadoc) * @see javax.jms.MessageListener#onMessage(javax.jms.Message) */ public void onMessage(Message msg) { // TODO Auto-generated method stub try{ TextMessage txtMsg = (TextMessage)msg; System.out.println("Queue Text:"+ txtMsg.getText()); }catch(Exception ex){ ex.printStackTrace(); } } }
2)MDB client:
import javax.jms.TextMessage; import javax.jms.Topic; import javax.jms.TopicConnection; import javax.jms.TopicConnectionFactory; import javax.jms.TopicPublisher; import javax.jms.TopicSession; import javax.naming.InitialContext; /** * @author Jamson Huang * */ public class TopicMdbEjbBeanClient { /** * @param args */ public static void main(String[] args) throws Exception { InitialContext context = new InitialContext(); TopicConnectionFactory factory = (TopicConnectionFactory)context.lookup("ConnectionFactory"); TopicConnection conn = factory.createTopicConnection(); TopicSession session = conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE); Topic topic = (Topic)context.lookup("topic/TopicMdb"); TextMessage txtMsg = session.createTextMessage("Hello world, Jamson"); TopicPublisher publisher = session.createPublisher(topic); publisher.send(txtMsg); System.out.println(txtMsg.getText()); session.close(); conn.close(); System.out.println("Topic has been sent!"); } }
发表评论
-
OS Workflow Intruction
2011-03-14 01:58 1680OSWorkflow是一个灵活的工作流引擎,设计成可嵌入到企业 ... -
SSL单双向验证原理(转)
2010-06-07 22:34 2931Key points SSL验证 双向SSL ... -
Spring2.5学习之三----AOP研究
2010-05-31 12:09 6510Key Points AOP的基本概念 Advice的类型 A ... -
Spring2.5学习之二----依赖注入
2010-05-30 17:22 2467Key points 依赖注入的原理 依赖注入的方式---XM ... -
Spring学习之一----创建Bean的三种方法
2010-05-30 14:29 27721关键字 BeanFactory ApplicationCont ... -
EJB3学习之四----EJB3新特性(元数据注解和依赖注入)
2010-05-13 01:39 4177EJB3新特性 元数据注解 依赖注入 一 EJB3新特性 ... -
Ejb3学习之二----Ejb3的Ejb Bean类型介绍
2010-05-11 23:01 3284关于Ejb3的Ejb bean类型介 ... -
EJB学习之三---Local和Remote接口
2010-05-10 23:12 8312这篇文章主要来学习Ejb的组成元素,重点介绍Local和Rem ... -
Ejb学习之一---EJB3+Jboss4.2配置开发
2010-05-09 02:59 2897昨天,打算把Ejb整理下,最早用到Ejb+Jboss是在三年前 ... -
Struts Taglib库之(一)Bean讲解
2010-05-05 23:29 0最近准备换工作,也想把一些工作中用到的技术进行链接起来,就把它 ... -
转:Hibernate中cascade和inverse的相关
2011-11-19 17:51 680FROM:http://developer.51cto.com ... -
Struts1和Struts2有何不同?
2010-04-19 00:42 0Struts1和Struts2的区别和对比: Action ... -
Struts2中的Vistor模式
2010-04-19 00:40 1557Visitor访问者模式定义 作用于某个对象群中各个对象的操作 ... -
Spring中的Singleton模式和Prototype模式
2010-04-19 00:06 1832对于在Spring+Struts2结合配置Action=&qu ... -
WebService介绍
2010-04-18 17:01 2981记得初次接触WebService是 ... -
Spring中的Singleton模式和Java中的Singleton模式
2010-04-17 17:09 12694对于Spring中实现Singleton模式,是以IOC容器为 ... -
JavaMail来读取和发送邮件的基本流程
2010-04-15 01:21 1943在应用程序中使用JavaMail来读取邮件的基本流程如下: ... -
SSH框架优缺点【转】
2010-04-15 00:53 6174在过去的一年里,可能 ... -
J2EE面试题
2010-04-14 11:17 0一、基础问答 1.下 ... -
JTOM
2010-04-13 00:24 0JTOM是一个基于Java开放源代码的事物处理管理器。它遵 ...
相关推荐
### Java EE 5 学习笔记06:EJB之消息驱动Bean总结 #### EJB 消息驱动 Bean (Message Driven Bean, MDB) 在Java EE 5中,消息驱动Bean(MDB)是一种特殊的EJB组件,它主要用于处理异步消息。MDB能够接收并处理由...
EJB(Enterprise JavaBeans)..."EJB消息驱动bean Demo"为你提供了一个实际操作的例子,通过它你可以学习如何设置和使用MDB,以及如何利用JMS进行通信。理解并熟练掌握这些概念对于开发企业级的Java应用程序至关重要。
4. **部署MDB**:将MDB类打包到EJB模块(.ear或.ejb-jar文件)中,并在部署描述符(如 ejb-jar.xml 或 META-INF/ejb-jar.xml)中声明它。有时,激活规范也可以在这里配置。 5. **使用JMS API**:在onMessage()方法...
**理解消息驱动Bean(MDB)** 消息驱动Bean是Java EE中用于处理异步消息的一种特殊类型的EJB。在EJB2中,MDB主要用于接收来自消息队列或主题的消息,处理后可进一步触发业务逻辑或其他操作。 ##### 2. **创建queue...
通过这个主题,开发者可以学习到如何在旧版Java EE环境中利用消息驱动Bean进行异步处理,这对于理解更高级的Java EE技术,如EJB3.0和微服务架构,有着重要的基础作用。同时,这也是一种宝贵的技能,因为许多遗留系统...
虽然MDB负责处理消息,但是由运行MDB的EJB容器负责处理服务(事务、安全、资源、并发、消息确认,等等),使bean开发者把精力集中在处理消息的业务逻辑上。传统的JMS应用程序必须定制地编写一部分这些服务。MDB在...
消息驱动Bean(Message Driven Bean,MDB)是EJB的一种特殊类型,它专注于处理消息队列(Queue)或主题(Topic)中的消息,实现异步处理。在本例中,我们将探讨如何使用EJB消息驱动Bean处理Queue和Topic。 1. **...
在Java企业级应用开发中,EJB(Message Driven Bean, MDB)是用于处理异步消息传递的关键技术之一。而Java Naming and Directory Interface (JNDI)则是Java平台提供的一种标准接口,用于查找并获取应用程序所需的资源...
**消息驱动Bean (Message Driven Bean, MDB) 是企业级JavaBeans (Enterprise JavaBeans, EJB) 3.0 规范中引入的一种组件模型,主要用于处理异步消息通信。在分布式应用程序中,MDB 提供了一种高效且解耦的方式来处理...
3. **部署描述符**:在`ejb-jar.xml`或`META-INF/ejb-jar.xml`中配置MDB,包括消息类型(JMS queue或topic)、消息驱动适配器等。 4. **RA(Resource Adapter)配置**:`ra.xml`文件是资源适配器的配置文件,用于...
7. **消息驱动bean(Message-Driven Beans, MDB)**:EJB 3.0中的MDB简化了处理JMS(Java Message Service)消息的过程,使得异步处理变得更加容易。 8. **可移植性**:由于EJB 3.0是Java EE标准的一部分,因此编写...
### 精通EJB(第三版)核心...本书通过丰富的示例和详尽的技术解释,帮助读者从理论到实践全面掌握EJB技术的核心要点,无论是对于学习EJB基础知识,还是进行具体的EJB组件开发,亦或是探索高级主题都有着重要的指导意义。
#### 五、消息驱动Bean (Message-Driven Bean) 1. **基本概念** - 定义MDB用于处理来自JMS的消息。 2. **开发流程** - 创建MDB项目。 - 配置JMS队列/主题。 3. **部署与测试** - 部署MDB到JBoss AS。 - 发送...
3. **消息驱动bean(Message-Driven Beans,MDB)**:专门用于处理JMS(Java Message Service)消息,它们在后台监听消息队列,并在接收到消息时执行相应的业务逻辑。 `javax.ejb`包包含了这些EJB组件的关键接口和...
- **消息驱动bean(Message-Driven Beans,MDB)**:主要用于处理JMS(Java Message Service)消息,实现异步处理。 3. **EJB生命周期**:EJB组件经历创建、初始化、激活、被动使用、钝化和销毁等阶段。这些阶段由...
这些资源通常在应用服务器的部署描述符(如WEB-INF/ejb-jar.xml或META-INF/ejb-jar.xml)中配置,但在EJB 3.0中,也可以通过注解完成。 3. **JNDI查找**:MDB可能需要查找其他JNDI资源,如JMS连接工厂,以便建立与...
2. **消息驱动Bean (MDB):**用于处理JMS消息,实现消息驱动的业务逻辑。 3. **实体Bean:**用于持久化数据,但在EJB3中,实体Bean已被JPA(Java Persistence API)取代。 #### 三、EJB3 开发环境搭建 1. **安装...
2. **消息驱动Bean(MDB)的简化**:MDB用于处理异步消息,EJB 3.0简化了MDB的配置,引入了注解,使得MDB的定义更加直观易懂。 3. **增强的安全性和事务管理**:EJB 3.0提供了更强大的安全性和事务管理功能,包括细...
3. **消息驱动Bean(Message Driven Beans,MDB)**:主要用于处理JMS(Java Message Service)消息,是异步处理的典型代表,可以解耦发送和接收消息的组件。 4. **实体Bean(Entity Beans)**:用于持久化数据,...
- 消息驱动bean(Message-driven Beans, MDB):用于处理消息队列中的消息,常用于异步处理。 - 实体bean(Entity Beans):映射到数据库中的持久化对象,分为Bean管理的持久性(BMP)和容器管理的持久性(CMP)。...