一. 准备开发环境
JBoss IDE 1.5GA, JBoss IDE是JBoss公司对Eclipse的增强,包括EJB3.0,JBPM,JBoss AOP,FreeMaker等等插件,对于JBoss产品的开发,是非常方便的。可以去Jboss.org网站下载.
Ecliose WTP插件,这是开发Java EE项目插件,这里用来开发一个web项目,来测试Message Driven Bean.
JBoss 4.04GA,可以从Jboss.org网站下载,安装版,zip版都可以.
二. 新建EJB3.0工程
选择菜单New | Project...,在弹出对话框中,选择EJB 3.0 Project
单击[Next]按钮,填写工程名称EJB3Demo2
单击[Next]按钮,选择JBoss配置
我们这里还没有配置,因此选择[create a jboss configuration]按钮,新建JBoss配置.
选择JBoss4.0.x,并单击[New]按钮
按下图 输入配置名称,JBoss 安装目录,Server Configuration选择default
单击[Apply]按钮,然后单击[Close]按钮
单击[Finish]按钮,完成.
三.新建Message Driven Bean
单击右键,选择New | Other...
在弹出对话框中,选择EJB3.0 | Message Driven Bean
单击[Next]按钮,输入包名,类名等
单击[Finish]按钮完成.
四. 完成Message Driven Bean的代码
4.1 设置ConnectionFactory和Queue
ConnectionFacoty使用JBoss默认的ConnectionFactory,因此不用设置。
设置Queue方式如下:
找到jbossmq-destinations-service.xml文件,该文件在jboss安装目录\server\default\deploy\jms下.在文件最后,加入下面代码,新增一个Queue.
<mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.mq.destination:service=Queue,name=myQueue">
<depends optional-attribute-name="DestinationManager">
jboss.mq:service=DestinationManager
</depends>
</mbean>
4.2 完成代码
设置好Queue后,编辑HelloMDB.java,加入Connection和Queue说明.
package demo;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType",
propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination",
propertyValue = "queue/myQueue") })
public class HelloMDB implements MessageListener {
public void onMessage(Message msg) {
if (msg instanceof TextMessage) {
TextMessage txtMsg = (TextMessage) msg;
try {
System.out.println("Hello " + txtMsg.getText() + ",MDB欢迎您!");
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
4.3导出jar包
选择菜单File | Export,弹出对话框选择JAR File
单击[Next]按钮.选择jar包导出的位置
单击[Finish]按钮,完成导出
五. MDB的部署与测试
5.1 部署EJB
把我们刚才导出的jar文件.放到JBoss安装目录下的server\default\deploy下
ok,ejb部署好了.下面我们写一个servlet测试一下
5.2 测试EJB
5.2.1新建动态web项目
选择菜单 File | new | Project ,在弹出对话框中选择web|Dynamic Web Project
单击[Next]按钮,填写工程名称
单击{Finish]按钮,完成.
5.2.2 新建Servlet
单击右键.选择New | Servlet
弹出对话框中,按下图填写
单击[Finish]按钮完成
5.2.3 在TestServlet的doGet方法中,编写测试EJB的代码
TestServlet.java内容如下
package test;
import java.io.IOException;
import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try {
//得到上下文
Context ctx=new InitialContext();
//得到ConnectionFacory
QueueConnectionFactory connFacotry=
(QueueConnectionFactory)ctx.lookup("ConnectionFactory");
//得到消息队列
Queue queue=(Queue)ctx.lookup("queue/testQueue");
QueueConnection queueConn=connFacotry.createQueueConnection();
QueueSession queueSession =
queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
QueueSender queueSender =queueSession.createSender(queue);
//组装消息
TextMessage txtMsg=queueSession.createTextMessage();
txtMsg.setText("Luo Daijun");
queueSender.send(txtMsg);
//关闭资源
queueSender.close();
queueSession.close();
queueConn.close();
} catch (NamingException e) {
e.printStackTrace();
} catch (JMSException e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
}
}
5.2.4 运行TestServlet,测试效果 ^_^
右键, 选择 Run As | Run on server
选择JBoss 4.0 for EJB3.0
单击[Finish]按钮,完成
打开IE浏览器,输入 http://localhost:8080/TestEJB/TestServlet
嗯..看看JBuilder 的控制台吧
嗯.结束
分享到:
相关推荐
### EJB3.0开发Message Driven Bean #### 一、概述 Enterprise JavaBeans (EJB) 是一种基于Java的应用程序编程接口(API),用于开发分布式企业级应用。EJB3.0作为Java EE5规范的一部分,引入了许多简化开发的新特性...
接下来,《EJB3.0开发Message Driven Bean.pdf》将引导你了解消息驱动bean(MDB)。MDB是一种特殊类型的session bean,专门用于处理JMS(Java Message Service)消息。在企业级应用中,当系统需要异步处理大量数据...
- 使用IDE如Eclipse或IntelliJ IDEA,这些工具通常集成了对EJB3.0和JBoss的支持,可以方便地创建、部署和调试EJB项目。 - 利用JBoss提供的管理控制台或命令行工具,监控和管理EJB的运行状态。 6. 示例代码: - ...
**EJB3.0开发入门 Step by Step** Enterprise JavaBeans(EJB)是...通过阅读"EJB3.0开发Entity.pdf"、"EJB3.0开发Session Bean.pdf"和"EJB3.0开发Message Driven Bean.pdf",你将能深入学习并掌握EJB3.0的相关知识。
### JBoss EJB3.0 教程知识点详解 #### 一、教程适用人群与目的 ...综上所述,本教程不仅提供了EJB3.0的核心技术理论,还结合了大量的实践案例,旨在帮助读者全面掌握JBoss环境下EJB3.0的开发技能。
2. **消息驱动Bean(Message-Driven Beans)** - 用于处理Java消息服务(JMS)消息,实现异步处理。 3. **实体Bean(Entity Beans)** - 代表持久化的数据对象,通常映射到数据库中的表。EJB 3.0引入了基于JPA...
在开发EJB3.0应用时,通常需要一个支持EJB的服务器,如Jboss、WebLogic或Glassfish等。Tomcat服务器由于定位轻量级,不支持EJB。开发者可以使用集成开发环境(IDE),如Eclipse或MyEclipse,它们提供了对EJB3.0的...
2. **Message Driven Bean(MDB)**:用于处理消息队列(JMS)中的消息,常用于异步处理。 3. **Entity Bean**:代表应用程序中的持久化数据,通常映射到数据库表。EJB3.0引入了注解驱动的JPA(Java Persistence ...
【EJB3.0开发实践】 在JBoss应用服务器中部署和运行EJB3.0应用通常涉及以下步骤: 1. **创建EJB项目**:使用IDE如Eclipse或IntelliJ IDEA创建一个新的Java EE项目,选择EJB模块。 2. **定义bean**:编写EJB类,...
- **消息驱动Bean(Message-Driven Beans)**:通过JMS(Java Message Service)监听消息队列,实现异步处理。 - **依赖注入(Dependency Injection)**:通过`@EJB`注解,可以实现组件间的依赖管理,简化了对象...
在开始EJB 3.0开发之前,你需要先安装支持EJB 3.0的Java EE服务器,如JBOSS。下载并安装JBOSS服务器后,配置服务器以支持EJB部署。这通常涉及到设置环境变量,配置服务器配置文件,例如`standalone.xml`或`domain....
- EJB 3.0应用需要在支持Java EE 5或更高版本的应用服务器上运行,如JBoss, GlassFish, WebLogic等。 - 部署描述符(如`ejb-jar.xml`)通常会自动由编译器或IDE生成,简化了部署过程。 6. **学习资源与实践** - ...
本教程《JBoss EJB3.0 实例教程》由黎活明编写,适用于希望深入了解Java企业级开发中EJB3.0组件使用的开发者们。无论是初学者还是有一定经验的开发人员,都能从中获得有价值的信息。 **1.1 本教程适合人群** - Java...
在实际操作中,可能是一个EJB 3.0开发环境的启动器,或者是与JBoss相关的配置工具。 理解EJB 3.0和JBoss的配置运行过程对Java EE开发者至关重要,因为这涉及到企业级应用的开发、部署和管理。掌握这一技能可以帮助...
3.7 @MessageDriven:标记一个类为消息驱动Bean。 四、EJB 3.0部署与运行 4.1 部署描述符:EJB 3.0显著减少了XML部署描述符的使用,许多配置可以通过注解完成。 4.2 容器管理:EJB容器负责Bean的生命周期管理,...
EJB3.0通过注解来定义Bean的角色和行为,如`@Entity`、`@Stateless`、`@Stateful`、`@MessageDriven`等。此外,注解还能用于标注字段以实现数据持久化,如`@Id`、`@GeneratedValue`、`@Column`等。 ### 4. JPA和...
同时,使用诸如Eclipse, NetBeans这样的IDE,可以提供EJB 3.0的集成开发环境,包括代码生成、调试和部署等辅助功能。 **总结** EJB 3.0容器模型通过简化API和引入注解,极大地提高了开发效率。其与Web服务的紧密...
- **环境搭建**:包括JDK、应用服务器(如JBoss、GlassFish)、EJB 3.0兼容的IDE(如NetBeans、Eclipse)的安装和配置。 - **基本概念讲解**:对EJB 3.0中的实体Bean、会话Bean、消息驱动Bean的概念进行详解。 - *...
#### 消息驱动Bean (Message Driven Bean) - **基础概念**: 介绍消息驱动Bean的基础知识和应用场景。 - **配置和使用**: 学习如何配置和使用消息驱动Bean。 #### 实体Bean (Entity Bean) - **配置文件PERSISTENCE....