`
jibin6693923
  • 浏览: 13860 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

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.
分享到:
评论

相关推荐

    JBoss ESB 学习笔记

    - **重点**:学习如何使用JMS Router组件实现消息路由。 - **实现**:配置JMS Router,使其能够根据规则将消息路由到不同的目的地。 #### 十、第九个ESB应用JMS Topic - **重点**:使用JMS Topic组件实现发布订阅...

    java的30个学习目标

    熟悉JNDI、JMS、JTA/JTS、JMX、JavaMail等J2EE技术,对于构建企业级应用和服务至关重要。 #### 十四、企业级JavaBeans(EJB) 最后,深入理解EJB(Stateless/Stateful Session Bean、Message-Driven Bean)的组件模式...

    Java学习的30个目标.txt

    - **JMS**:掌握Java Message Service,学会使用JMS进行消息传递。 - **JTA/JTS**:了解Java Transaction API/Java Transaction Service,学会使用JTA进行事务管理。 - **JMX**:掌握Java Management Extensions,...

    java学习中的一点忠告

    熟悉Java EE标准,包括JNDI、JMS、JTA/JTS、JMX等服务接口,以及使用Tomcat、Resin、JRun等Web容器部署Web应用,是成为一名合格的Java企业级开发者不可或缺的技能。 ### 八、XML与Web服务 学习XML相关API,如JAXP...

    java后端学习笔记.zip

    Java EE(Enterprise Edition)提供了许多企业级开发组件,如EJB(Enterprise JavaBeans)、JMS(Java Message Service)和JPA(Java Persistence API)。学习这些技术可以构建更复杂的应用,如分布式系统、消息队列...

    JAVA程序员您需要学习的25个标准

    #### 十二、J2EE应用服务器管理 1. **配置与管理**:熟悉WebLogic、JBoss等应用服务器的配置和管理,对于确保应用的稳定性和性能至关重要。 2. **高级特性**:如集群(Clustering)、连接池(Connection Pooling)、...

    Java教程清华版.rar

    Java EE(以前称为J2EE)是一个用于开发分布式企业级应用的平台,包括Servlet、JSP、EJB、JMS、JPA等技术,提供了一套完整的解决方案。 通过这个【Java教程清华版】的学习,你将全面掌握Java编程的各项技能,为今后...

    java极限编程

    这一章可能会涵盖XP的核心价值观,如沟通、简单、反馈、勇气和尊重,以及XP的十二个实践原则,如小批量、持续集成、结对编程、计划游戏等。此外,还可能介绍了XP如何通过紧密合作的团队、迭代开发和频繁的客户反馈来...

    J2EE学习教程

    ### J2EE学习教程知识点概览 #### 一、J2EE概述 1. **J2EE的概念**: - J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems公司发布的一套企业级Java平台标准。 - 它旨在为多层中间件提供一个标准的...

    java从入门到精通文档.rar

    Java Enterprise Edition(Java EE)是用于开发企业级应用的平台,包含Servlet、JSP、EJB、JMS、JPA等技术,用于构建分布式、事务处理、安全性高的应用程序。 十一、框架与工具 Spring、Hibernate、MyBatis等框架...

    Pro Spring Integration

    #### 十二、企业消息传递(Chapter 12: Enterprise Messaging with JMS and AMQP) - **JMS与AMQP**:介绍Java消息服务(JMS)和高级消息队列协议(AMQP),以及它们在企业消息传递中的角色。 - **集成示例**:给出...

    java开发技术与工程实践

    包括Servlet、JSP、EJB、JMS等,是构建Web应用的基础。理解这些技术,可以开发出功能丰富、性能良好的服务器端应用。 以上内容涵盖了Java开发技术与工程实践的多个方面,通过深入学习和实践,可以提升Java开发者的...

    ActiveMQ快速上手

    ### ActiveMQ快速上手知识点详解 #### 一、ActiveMQ简介 **1.1 定义与作用** - **定义**:ActiveMQ是...通过以上知识点的学习,可以全面了解ActiveMQ的各项特性和使用方法,有助于快速上手并应用于实际项目中。

    Java面试宝典2012版

    《Java面试宝典2012版》是针对Java开发者面试精心编纂的一份参考资料,...通过《Java面试宝典2012版》的学习,不仅可以系统复习Java基础知识,还能提升对技术面试的整体把握,为Java开发者在求职路上提供有力的支持。

    JMeter-Tutorial.pdf

    #### 十二、JUnit 测试计划 - **创建 JUnit 请求**: 添加 JUnit 请求采样器。 - **编写测试代码**: 在采样器中编写 Java 代码实现测试逻辑。 - **配置监听器**: 添加监听器显示测试结果。 - **执行测试**: 运行测试...

    JavaSoftwareBook

    《JavaSoftwareBook》是一部关于Java编程的英文原版著作,旨在深入探讨Java语言的各个方面,帮助读者...通过学习这本书,读者不仅可以掌握Java编程语言,还能了解到如何利用Java解决实际问题,构建高效稳定的软件系统。

    JavaPrac

    如果JavaPrac涉及Web开发,那么Java EE(企业版)的知识必不可少,包括Servlet、JSP、JDBC数据库连接、EJB、JMS消息队列等。 十一、Spring框架 Spring是Java开发中的一个流行框架,它简化了依赖注入、AOP(面向切面...

    EJB3开发指南《EJB.3.Developer.Guide》

    - **JMS集成**:消息驱动Bean通常与JMS(Java Message Service)集成,处理来自队列或主题的消息。 - **应用场景**:适用于高并发、低延迟的场景,如订单处理、日志记录等。 #### 九、EJB Timer Service - **功能**...

    mule-2.2.1-users-guide

    - **JMS Transport**:与 Java 消息服务集成。 - **MQ Transport**:支持多种消息队列系统。 - **SOAP Transport**:处理 SOAP 协议的 Web 服务请求。 - **SSL Transport**:使用 SSL/TLS 加密通信。 - **TCP/UDP ...

Global site tag (gtag.js) - Google Analytics