在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.
分享到:
相关推荐
- **重点**:学习如何使用JMS Router组件实现消息路由。 - **实现**:配置JMS Router,使其能够根据规则将消息路由到不同的目的地。 #### 十、第九个ESB应用JMS Topic - **重点**:使用JMS Topic组件实现发布订阅...
熟悉JNDI、JMS、JTA/JTS、JMX、JavaMail等J2EE技术,对于构建企业级应用和服务至关重要。 #### 十四、企业级JavaBeans(EJB) 最后,深入理解EJB(Stateless/Stateful Session Bean、Message-Driven Bean)的组件模式...
- **JMS**:掌握Java Message Service,学会使用JMS进行消息传递。 - **JTA/JTS**:了解Java Transaction API/Java Transaction Service,学会使用JTA进行事务管理。 - **JMX**:掌握Java Management Extensions,...
熟悉Java EE标准,包括JNDI、JMS、JTA/JTS、JMX等服务接口,以及使用Tomcat、Resin、JRun等Web容器部署Web应用,是成为一名合格的Java企业级开发者不可或缺的技能。 ### 八、XML与Web服务 学习XML相关API,如JAXP...
Java EE(Enterprise Edition)提供了许多企业级开发组件,如EJB(Enterprise JavaBeans)、JMS(Java Message Service)和JPA(Java Persistence API)。学习这些技术可以构建更复杂的应用,如分布式系统、消息队列...
#### 十二、J2EE应用服务器管理 1. **配置与管理**:熟悉WebLogic、JBoss等应用服务器的配置和管理,对于确保应用的稳定性和性能至关重要。 2. **高级特性**:如集群(Clustering)、连接池(Connection Pooling)、...
Java EE(以前称为J2EE)是一个用于开发分布式企业级应用的平台,包括Servlet、JSP、EJB、JMS、JPA等技术,提供了一套完整的解决方案。 通过这个【Java教程清华版】的学习,你将全面掌握Java编程的各项技能,为今后...
这一章可能会涵盖XP的核心价值观,如沟通、简单、反馈、勇气和尊重,以及XP的十二个实践原则,如小批量、持续集成、结对编程、计划游戏等。此外,还可能介绍了XP如何通过紧密合作的团队、迭代开发和频繁的客户反馈来...
### J2EE学习教程知识点概览 #### 一、J2EE概述 1. **J2EE的概念**: - J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems公司发布的一套企业级Java平台标准。 - 它旨在为多层中间件提供一个标准的...
Java Enterprise Edition(Java EE)是用于开发企业级应用的平台,包含Servlet、JSP、EJB、JMS、JPA等技术,用于构建分布式、事务处理、安全性高的应用程序。 十一、框架与工具 Spring、Hibernate、MyBatis等框架...
#### 十二、企业消息传递(Chapter 12: Enterprise Messaging with JMS and AMQP) - **JMS与AMQP**:介绍Java消息服务(JMS)和高级消息队列协议(AMQP),以及它们在企业消息传递中的角色。 - **集成示例**:给出...
包括Servlet、JSP、EJB、JMS等,是构建Web应用的基础。理解这些技术,可以开发出功能丰富、性能良好的服务器端应用。 以上内容涵盖了Java开发技术与工程实践的多个方面,通过深入学习和实践,可以提升Java开发者的...
### ActiveMQ快速上手知识点详解 #### 一、ActiveMQ简介 **1.1 定义与作用** - **定义**:ActiveMQ是...通过以上知识点的学习,可以全面了解ActiveMQ的各项特性和使用方法,有助于快速上手并应用于实际项目中。
《Java面试宝典2012版》是针对Java开发者面试精心编纂的一份参考资料,...通过《Java面试宝典2012版》的学习,不仅可以系统复习Java基础知识,还能提升对技术面试的整体把握,为Java开发者在求职路上提供有力的支持。
#### 十二、JUnit 测试计划 - **创建 JUnit 请求**: 添加 JUnit 请求采样器。 - **编写测试代码**: 在采样器中编写 Java 代码实现测试逻辑。 - **配置监听器**: 添加监听器显示测试结果。 - **执行测试**: 运行测试...
《JavaSoftwareBook》是一部关于Java编程的英文原版著作,旨在深入探讨Java语言的各个方面,帮助读者...通过学习这本书,读者不仅可以掌握Java编程语言,还能了解到如何利用Java解决实际问题,构建高效稳定的软件系统。
如果JavaPrac涉及Web开发,那么Java EE(企业版)的知识必不可少,包括Servlet、JSP、JDBC数据库连接、EJB、JMS消息队列等。 十一、Spring框架 Spring是Java开发中的一个流行框架,它简化了依赖注入、AOP(面向切面...
- **JMS集成**:消息驱动Bean通常与JMS(Java Message Service)集成,处理来自队列或主题的消息。 - **应用场景**:适用于高并发、低延迟的场景,如订单处理、日志记录等。 #### 九、EJB Timer Service - **功能**...
- **JMS Transport**:与 Java 消息服务集成。 - **MQ Transport**:支持多种消息队列系统。 - **SOAP Transport**:处理 SOAP 协议的 Web 服务请求。 - **SSL Transport**:使用 SSL/TLS 加密通信。 - **TCP/UDP ...