一、配置
1.jboss5.1之前的版本是把xxxx-service.xml拷贝到\server\default\deploy\目录下,其内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.mq.destination:service=Queue,name=myQueue">
<attribute name="JNDIName">queue/myQueue</attribute>
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
<mbean code="org.jboss.mq.server.jmx.Topic"
name="jboss.mq.destination:service=Topic,name=myTopic">
<attribute name="JNDIName">topic/myTopic</attribute>
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
</server>
2. Jboss6配置: 在jboss-6.1.0.Final\server\all\deploy\hornetq\hornetq-jms.xml 加入配置
<queue name="myQueue">
<entry name="/queue/myQueue"/>
</queue>
<topic name="myTopic">
<entry name="/topic/myTopic"/>
</topic>
二、代码
1.jboss5.1之前的版本的连接工厂JNDI分别为:TopicConnectionFactory和QueueConnectionFactory
在Session Bean中代码:
@Stateless
@Remote (TSender.class)
public class TSenderBean implements TSender {
@Resource(mappedName="QueueConnectionFactory") private QueueConnectionFactory factory;
@Resource(mappedName="queue/myQueue") private Queue destination;
//@Resource(mappedName="TopicConnectionFactory") private TopicConnectionFactory factory;
//@Resource(mappedName="topic/myTopic") private Topic destination;
public void send(String msg) {
TopicConnection conn = null;
TopicSession session = null;
try {
conn = factory.createQueueConnection();
session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(destination);
//conn = factory.createTopicConnection();
//session = conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
//MessageProducer producer = session.createProducer(destination);
TextMessage text = session.createTextMessage(msg);
producer.send(text);
}catch (Exception e){
e.printStackTrace();
}finally{
try {
session.close ();
conn.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
在java类中代码:
Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
props.setProperty(Context.PROVIDER_URL, "localhost:1099");
props.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
InitialContext ctx = new InitialContext(props);
QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("QueueConnectionFactory"); //PTP(点对点) 消息传递模型规定了一条消息只能传递给一个接收方
//TopicConnectionFactory factory = (TopicConnectionFactory) ctx.lookup("TopicConnectionFactory"); //Pub/sub (发布和订阅)消息传递模型允许一条消息传递给多个接收方
//TopicConnection conn = factory.createTopicConnection();
//TopicSession session = conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
//Destination destination = (Topic) ctx.lookup("topic/myTopic");
TopicConnection conn = factory.createQueueConnection();
TopicSession session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
Destination destination = (Queue) ctx.lookup("queue/myQueue");
MessageProducer producer = session.createProducer(destination);
//发送文本
TextMessage msg = session.createTextMessage("Hello Bean");
producer.send(msg);
2.Jboss6中 QueueConnectionFactory和QueueConnectionFactory的连接工厂JNDI合并成了ConnectionFactory, so 把上面代码连接工厂JNDI改为ConnectionFactory就OK了
相关推荐
EJB3.0是EJB规范的一个重要版本,它在2006年发布,引入了许多重大的改进,简化了开发流程,降低了对XML配置的依赖,并引入了注解(Annotation)来简化组件的声明。 **EJB3.0的关键特性** 1. 注解驱动:EJB3.0引入了...
总的来说,"EJB3.0+JBOSS4.2.2GA集群"意味着开发者正在构建一个基于EJB 3.0的分布式应用程序,并使用JBoss AS 4.2.2 GA版本来支持集群部署,以提高系统的可靠性和性能。通过深入理解集群配置、会话复制以及负载均衡...
在实际操作中,可能是一个EJB 3.0开发环境的启动器,或者是与JBoss相关的配置工具。 理解EJB 3.0和JBoss的配置运行过程对Java EE开发者至关重要,因为这涉及到企业级应用的开发、部署和管理。掌握这一技能可以帮助...
EJB 3.0 是EJB规范的一个重大改进,它简化了API,降低了开发复杂性。EJB 3.0 的核心特性包括: 1. **注解驱动**:EJB 3.0 引入了大量注解,如`@Entity`, `@PersistenceContext`, `@Stateless`, `@Stateful`, `@...
这个“第三次上机作业”可能是实验或项目的一部分,它可能包含了实现EJB3.0一对多关系的具体代码和配置文件。文件中可能包括了实体类、会话Bean以及相应的XML配置文件(如果有的话)。通过分析这些文件,可以深入...
EJB 3.0是EJB规范的一个重要版本,它极大地简化了EJB的开发模型,使得开发者能够更加专注于业务逻辑,而无需深陷于复杂的API和配置之中。以下是对EJB 3.0开发文档和工具的详细解读: 1. **EJB 3.0的核心特性:** -...
- **JBoss IDE 1.5 GA**:提供了一整套针对JBoss应用程序服务器的集成开发环境(IDE),支持EJB3.0、JBPM、JBoss AOP等技术。 - **Eclipse WTP插件**:Web Tools Platform,用于开发Java EE项目,本例中用于创建一个...
【JBOSS7+EJB3.0】是一个关于企业级Java应用服务器JBOSS7与企业JavaBeans(EJB)3.0版本结合使用的实践案例。JBOSS AS(Application Server)是Red Hat公司开发的一款开源Java EE应用服务器,而EJB 3.0是Java平台上...
首先,我们来看《EJB3.0开发Entity.pdf》。在EJB 3.0中,Entity Bean代表持久化对象,它存储在数据库中并与数据库进行交互。这个部分将介绍如何定义实体bean,包括使用JPA(Java Persistence API)来注解实体类,...
《EJB3.0标准技术手册与JBoss实践指南第5版》是一部深入探讨企业级JavaBeans(EJB)3.0技术的权威著作,专为开发者提供了全面且实用的指导。EJB是Java平台上用于构建可扩展、安全且事务处理能力强的企业级应用的核心...
本教程将带你深入了解EJB 3.0的基础知识,并通过JBUILDER和JBOSS这两个流行的开发工具进行实践操作。 ### EJB 3.0概述 EJB 3.0的主要目标是提高开发者效率,通过引入注解(Annotations)和依赖注入(Dependency ...
在本文中,我们将深入探讨如何使用Eclipse集成开发环境(IDE)与JBoss Application Server 5相结合,利用Enterprise JavaBeans(EJB)3.0规范进行应用程序开发。EJB3是Java EE(企业版)平台的一个重要组成部分,它...
EJB3.0是EJB规范的一个重要版本,它引入了许多简化开发的特性,使得EJB更加易用。 EJB3.0的核心概念包括: 1. **Session Bean**: - **有状态Session Bean(Stateful Session Bean)**:每个客户端会话对应一个...
在JBuilder2007中,开发者可以享受到代码编辑、调试、项目管理等一站式开发服务,尤其在EJB3.0的开发中,其向导和模板功能可以帮助快速创建和配置EJB组件,提高开发效率。 6. **JBoss 4.0**:JBoss是开源的应用...
开发EJB3.0应用通常需要Java EE兼容的应用服务器,如GlassFish、JBoss或WebLogic。这些服务器提供了EJB的运行时环境,并负责管理Bean的生命周期。 8. **源码分析与实践** 提供的源码可以帮助我们理解EJB3.0的实现...
在开发EJB3.0应用时,通常需要一个支持EJB的服务器,如Jboss、WebLogic或Glassfish等。Tomcat服务器由于定位轻量级,不支持EJB。开发者可以使用集成开发环境(IDE),如Eclipse或MyEclipse,它们提供了对EJB3.0的...
JBoss的EJB3.0支持包括了部署描述符的简化、热部署功能以及与其他Java EE组件(如Servlet、JMS等)的无缝集成。 在《EJB3.0简介.htm》和《EJB3.pdf》中,可能会详细解释这些概念和使用方法,而《ejb3_ch》可能是EJB...
1. **注解驱动**:EJB3.0大量使用了Java注解(Annotation),如`@Entity`, `@Stateless`, `@PersistenceContext`等,使得开发者无需编写大量的XML配置文件,代码更简洁。 2. **持久化框架**:EJB3.0引入了JPA(Java...
- `EJB3.0开发Message Driven Bean.pdf`:专门讲解如何利用EJB3.0开发消息驱动bean,包括JMS配置和消息处理。 - `EJB3.0开发Entity.pdf`:涵盖了EJB3.0中的实体bean开发,包括JPA的基本概念和操作。 通过这些教程,...
EJB3.0的出现极大地降低了开发企业级Java应用的门槛,其简化了Bean的配置,提升了开发效率。通过实体Bean、会话Bean和消息驱动Bean,开发者可以构建出复杂而稳定的分布式系统。理解并熟练掌握这些核心组件,是成为...