消息驱动Bean

1. MDB 负责消费JMS及其他类型的消息。 

2.消息可能来自JMS目的地的JMS消息,或者来自其他Endpoint的其他消息类型。

3.MDB实例仅存在两种状态:不存在或池化(pooled,也称之为就绪状态)。

MDB的生命周期:

MDB的具体特征:

1)MDB不存在远程或本地业务接口。

2)MDB支持各种用于消息分发的监听器方法。

3)MDB监听方法可能不会返回任何值给客户。

4)MDB可能不会返回异常信息给客户。

5)MDB是无状态的。

6)MDB是单线程的。

 示例代码:

在实际企业应用中,开发的MDB组件往往需要调用到其他EJB组件。

package examples.messaging;

import javax.jms.*;
import javax.ejb.*;
import javax.annotation.PreDestroy;

@MessageDriven(activationConfig = {
        @ActivationConfigProperty(propertyName = "destinationType",
                propertyValue = "javax.jms.Topic")//  "javax.jms.Queue"
        })
public class LogBean implements MessageListener {
   
    public LogBean() {
        System.out.println("LogBean created");
    }
   
    public void onMessage(Message msg) {
        if (msg instanceof TextMessage) {
            TextMessage tm = (TextMessage) msg;
            try {
                String text = tm.getText();
                System.out.println("Received new message : " + text);
            } catch (JMSException e) {
                e.printStackTrace();
            }
        }
    }
   
    @PreDestroy
    public void remove() {
        System.out.println("LogBean destroyed.");
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值