JBoss IDE開發(fā)EJB3.0
一. 準備開發(fā)環(huán)境
JBoss IDE 1.5GA, JBoss IDE是JBoss公司對Eclipse的增強,包括EJB3.0,JBPM,JBoss AOP,FreeMaker等等插件,對于JBoss產品的開發(fā),是非常方便的??梢匀boss.org網站下載.
Ecliose WTP插件,這是開發(fā)Java EE項目插件,這里用來開發(fā)一個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.
- <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歡迎您!"); [Page]
- } 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新建動態(tài)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) { [Page]
- 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]按鈕。以上JBoss IDE開發(fā)完成
【編輯推薦】