隨筆-60  評論-35  文章-15  trackbacks-0

          ---- 建立消息驅動Bean ----
          * 菜單→File→New→Project,從樹形菜單中選擇EJB→EJB Project點擊[Next]按鈕
          * Project Name填入"MsgTest",點擊[Next]→按鈕后勾選所有選項,點擊[Next]→將Create an EJB Client ...前面的√去掉,點擊[Finish]按鈕。
          * 右鍵點擊工程名→New→Other,從樹形菜單中選擇EJB→XDoclet Enterprise JavaBean,點擊[Next]按鈕
          * 選擇MessageDrivenBean,點擊[Next]按鈕
          * ClassName填入"TestMsgBean",Java package填入"com.msgtest.ejb",點擊[Next]按鈕
          * Destination JNDI Name填入"TestMessage",其余不修改,點擊[Finish]按鈕

          ---- 建立測試 -----
          * 菜單→File→New→Other,從樹形菜單中選擇Java→JUtil Test Case→點擊[Next]按鈕,如果出現對話框選擇"YES"
          * Package 填入"com.msgtest.test",Name填入"Msgtest",點擊[Finish]按鈕
          * 將%JBOSS_HOME%/client下面的所有jar文件都加入到工程路徑中來,因為要連接JBOSS需要這些JAR,下面的加入的步驟
          ? 1. 菜單→Project→Properties,從樹形菜單中選擇Java Build Path,點擊Libraries選項卡,選擇Add Library
          ? 2. 選擇User Library,點擊[Next]
          ? 3. 點擊User Libraries按鈕
          ? 4. 點擊New按鈕,輸入JBoss1.4RC1Client,點擊[OK]按鈕
          ? 5. 點擊Add Jars按鈕,選擇%JBOSS_HOME%/client目錄下面的所有jar文件,除了jboss-j2ee.jar
          ? 6. 點擊[ok]按鈕,點擊[Finish]按鈕,點擊[ok]按鈕

          * 將 Msgtest.java 文件編輯成下列代碼:
          里面值得注意的是 Factory 對應的是 jms/QueueConnectionFactory,Queue對應的是 queue/TestMsg

          如果以上兩條忘記了,第一條可以參看http://localhost:8080/jmx-console/中關于jboss.jms的部分,里面應該有一行alias=QueueConnectionFactory,而這個"QueueConnectionFactory",就是我們需要的JNDI
          至于第二條,可以參看在部署完畢工程的時候JBoss的操作屏幕會出現對應的queue/xxx就是對應的部分

          package ?com.msgtest.test;

          import ?java.util.Hashtable;

          import ?javax.jms.ConnectionFactory;
          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.NamingException;

          import ?junit.framework.TestCase;

          public ? class ?Msgtest? extends ?TestCase? {
          ????
          public ? void ?test()
          ????
          {
          ????????javax.naming.InitialContext?initialContext
          = null ;
          ????????
          try ? {
          ????????????Hashtable?props?
          = ? new ?Hashtable();
          ????????????props.put(
          ????????????????Context.INITIAL_CONTEXT_FACTORY,
          ????????????????
          " org.jnp.interfaces.NamingContextFactory " );
          ????????????props.put(
          ????????????????Context.URL_PKG_PREFIXES,
          ????????????????
          " org.jboss.naming:org.jnp.interfaces " );
          ????????????props.put(Context.PROVIDER_URL,?
          " jnp://localhost:1099 " );????????????
          ????????????initialContext?
          = ? new ?javax.naming.InitialContext(props);
          ????????????QueueConnectionFactory?queueConnectionFactory;
          ????????????queueConnectionFactory?
          = ?(QueueConnectionFactory)initialContext.lookup( " QueueConnectionFactory " );
          ????????????Queue?queue?
          = ?(Queue)initialContext.lookup( " queue/TestMsg " );
          ????????????
          ????????????QueueConnection?queueConnection?
          = ?queueConnectionFactory.createQueueConnection();
          ????????????QueueSession?queueSession?
          = ?queueConnection.createQueueSession( false ,Session.AUTO_ACKNOWLEDGE);
          ????????????QueueSender?queueSender?
          = ?queueSession.createSender(queue);????
          ????????????TextMessage?message?
          = ?queueSession.createTextMessage();
          ????????????
          for ?( int ?i? = ? 0 ;?i? < ? 5 ;?i ++ )? {
          ????????????????message.setText(
          " This?is?message? " ? + ?(i? + ? 1 ));
          ????????????????System.out.println(
          " Sending?message:? " ? + message.getText());
          ????????????????queueSender.send(message);
          ????????????}
          ????????????
          ????????}
          ? catch ?(NamingException?e)? {
          ????????????
          // ?TODO?Auto-generated?catch?block
          ????????????e.printStackTrace();
          ????????}
          ? catch ?(JMSException?e)? {
          ????????????
          // ?TODO?Auto-generated?catch?block
          ????????????e.printStackTrace();
          ????????}

          ????}

          }

          * 將工程目錄下面的 build/classes 目錄下面的所有文件打包成一個 MsgTest.jar 文件
          ? jar cvf MsgTest.jar *
          * 將生成的 MsgTest.jar 拷貝到 %JBOSS_HOME%/server/default/deploy/目錄下,啟動JBoss

          運行這個例子
          posted on 2006-04-03 18:46 Q系列類、方法、變量…… 閱讀(1602) 評論(1)  編輯  收藏

          評論:
          # re: Eclipse下面的EJB的消息驅動Bean建立 2006-04-05 00:16 | fanse
          Eclipse 真好,又免費,又很友好

          歡迎訪問 http://www.shuangzixing.net 雙子星Java開源技術門戶  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 诸城市| 湖州市| 万宁市| 南郑县| 集贤县| 漳平市| 南丹县| 东方市| 湖南省| 娄底市| 衡阳县| 永吉县| 长武县| 龙泉市| 凤阳县| 饶阳县| 玉龙| 柘荣县| 新营市| 平阴县| 石柱| 泌阳县| 宜兰县| 栾川县| 定结县| 金平| 霸州市| 嘉兴市| 湖北省| 都江堰市| 石林| 彭水| 故城县| 滦平县| 屏东市| 丘北县| 南丹县| 九江县| 定州市| 白玉县| 罗源县|