JBoss IDE开发EJB3.0

开发 后端
本文介绍JBoss IDE开发EJB3.0,首先新建EJB3.0工程,新建Message Driven Bean等

一. 准备开发环境

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和QueueConnectionFacoty使用JBoss默认的ConnectionFactory,因此不用设置。

设置Queue方式如下:

找到jbossmq-destinations-service.xml文件,该文件在jboss安装目录\server\default\deploy\jms下.在文件最后,加入下面代码,新增一个Queue.

  1. <mbean code="org.jboss.mq.server.jmx.Queue" 
  2. name="jboss.mq.destination:service=Queue,name=myQueue"> 
  3. <depends optional-attribute-name="DestinationManager"> 
  4. jboss.mq:service=DestinationManager 
  5. </depends> 
  6. </mbean>  

4.2 完成代码
设置好Queue后,编辑HelloMDB.java,加入Connection和Queue说明.

  1. package demo;  
  2. import javax.jms.JMSException;  
  3. import javax.jms.Message;  
  4. import javax.jms.MessageListener;  
  5. import javax.jms.TextMessage;  
  6. import javax.ejb.ActivationConfigProperty;  
  7. import javax.ejb.MessageDriven;  
  8. @MessageDriven(activationConfig = {  
  9. @ActivationConfigProperty(propertyName = "destinationType",   
  10. propertyValue = "javax.jms.Queue"),  
  11. @ActivationConfigProperty(propertyName = "destination",   
  12. propertyValue = "queue/myQueue") })  
  13. public class HelloMDB implements MessageListener {  
  14. public void onMessage(Message msg) {  
  15. if (msg instanceof TextMessage) {  
  16. TextMessage txtMsg = (TextMessage) msg;  
  17. try {  
  18. System.out.println("Hello " + txtMsg.getText() + ",MDB欢迎您!"); [Page]  
  19. } catch (JMSException e) {  
  20. e.printStackTrace();  
  21. }  
  22. }  
  23. }  
  24. }  

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内容如下

  1. package test;  
  2. import java.io.IOException;  
  3. import javax.jms.JMSException;  
  4. import javax.jms.Queue;  
  5. import javax.jms.QueueConnection;  
  6. import javax.jms.QueueConnectionFactory;  
  7. import javax.jms.QueueSender;  
  8. import javax.jms.QueueSession;  
  9. import javax.jms.Session;  
  10. import javax.jms.TextMessage;  
  11. import javax.naming.Context;  
  12. import javax.naming.InitialContext;  
  13. import javax.naming.NamingException;  
  14. import javax.servlet.ServletException;  
  15. import javax.servlet.http.HttpServletRequest;  
  16. import javax.servlet.http.HttpServletResponse;  
  17. public class TestServlet extends javax.servlet.http.HttpServlet implements  
  18. javax.servlet.Servlet {  
  19. private static final long serialVersionUID = 1L;  
  20. protected void doGet(HttpServletRequest request,  
  21. HttpServletResponse response) throws ServletException, IOException {  
  22. try {  
  23. //得到上下文  
  24. Context ctx=new InitialContext();  
  25. //得到ConnectionFacory  
  26. QueueConnectionFactory connFacotry=  
  27. (QueueConnectionFactory)ctx.lookup("ConnectionFactory");   
  28. //得到消息队列  
  29. Queue queue=(Queue)ctx.lookup("queue/testQueue");  
  30. QueueConnection queueConn=connFacotry.createQueueConnection();  
  31. QueueSession queueSession =  
  32. queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);  
  33. QueueSender queueSender =queueSession.createSender(queue);  
  34. //组装消息  
  35. TextMessage txtMsg=queueSession.createTextMessage();  
  36. txtMsg.setText("Luo Daijun");  
  37. queueSender.send(txtMsg);  
  38. //关闭资源  
  39. queueSender.close();  
  40. queueSession.close();  
  41. queueConn.close();  
  42. } catch (NamingException e) {  
  43. e.printStackTrace();  
  44. } catch (JMSException e) { [Page]  
  45. e.printStackTrace();  
  46. }  
  47. }  
  48. protected void doPost(HttpServletRequest request,  
  49. HttpServletResponse response) throws ServletException, IOException {  
  50. }  
  51. }  

5.2.4 运行TestServlet,测试效果 ^_^
右键, 选择 Run As | Run on server
选择JBoss 4.0 for EJB3.0

单击[Finish]按钮。以上JBoss IDE开发完成

【编辑推荐】

  1. JBoss-4.2修改端口
  2. 在JBoss中Deploy下的一些程序秘诀
  3. JBoss5迎来可配置时代
  4. 全面讲解OpenCRX+Mysql+JBoss 4.0.5
  5. 将Jboss从4.0.5升级到4.2.0版本
责任编辑:佚名 来源: IT网
相关推荐

2009-06-12 12:46:59

EJB3.0

2009-06-12 09:41:07

EJB3.0Spring

2009-06-12 09:30:56

EJB3.0Spring+Hibe

2009-09-24 12:05:35

2009-06-22 16:59:33

POJOSpringEJB 3.0

2009-06-24 15:59:04

消息驱动Bean

2009-06-17 09:01:20

JBoss访问EJB

2009-06-16 15:15:18

WebLogic EJ

2009-06-26 15:17:44

SDOEJB 3.0

2009-06-04 17:33:08

EJB 3.1EJB 3.0

2009-06-29 17:07:54

EJB部署Jboss

2009-06-10 11:36:45

有状态的SessionEclipse+JBo

2009-06-24 15:56:47

实体Bean连接策略

2009-06-10 11:42:26

Session BeaEclipse+JBo

2009-06-24 15:57:44

JPQL命名查询

2009-06-10 11:09:40

配置文件SessionEclipse+JBo

2009-06-24 15:58:15

EntityManag

2009-06-10 12:34:01

Session BeaEclipse+JBo

2009-06-01 12:04:38

JPASpringJAVA

2009-06-24 15:53:08

Entity Bean多对多映射
点赞
收藏

51CTO技术栈公众号