posts - 30,  comments - 85,  trackbacks - 0

                   本文是為想在JBOSS環境下進行EJB開發的讀者而寫的,在閱讀本文之前,你最好對EJB有一個基本了解。

            JBOSS是一個開放源碼的免費EJB服務器,它實現了其它J2EE所規定的大多數功能,現在sun公司已經把JBOSS作為J2EE1.4的標準實現服務器了。    

                  以下是我從源代碼中摘出來的部分注釋,請結合工程文件查看。
                  /Files/anwenhao/EJBDemo.part1.rar
                  /Files/anwenhao/EJBDemo.part2.rar
                  /Files/anwenhao/EJBDemo.part3.rar
                  /Files/anwenhao/EJBDemo.part4.rar


           /**
           * 遠程接口
           *
           * 遠程接口支持EJB組件暴露的所有業務方法.
           * 遠程接口集成于EjbObject 容器生成的EJB對象繼承了遠程接口EjbObject
           *
           * 遠程接口中實現的方法即為業務方法.
           *
           * 
           */

          /**
           * EJB組件的home接口
           * 在該home接口中存在create()方法. 對應于HelloBean中的ejbCreate()方法
           *
           * 為獲取對EJB對象的引用客戶需要使用create方法.其中create方法還可以幫助組件完成初始化工作.
           * create方法需要拋出以下異常:RemoteException CreateException
           *
           * 所有的Home接口必須繼承于他.
           *
           * 同時EJBHome接口已經定義了組件銷毀remove()的方法,因此具體的Home不需要再次定義.
           *
           *
           */

          /**
           * 本地接口
           *
           * 當本地用戶client同EJB本地對象交互時,需要使用這一接口.容器廠商會實現這一接口而對應的實現對象就是EJB本地對象
           *
           * 本地接口需要繼承EJBLocalObject 與遠程接口的差別是本地接口并不拋出RemoteException
           *
           *
           */

          /**
           * 本地home接口.
           *
           * 本地home接口是home接口的高性能版本.本地home接口繼承于EJBLocalHome而不是EJBHome.EJBLocalHome并不繼承于Remote其意味著本地home對象并不是遠程對象.
           *
           *
           *
           * 
           */

          /**
           * 無狀態的SessionBean.
           *
           * 無狀態的Bean實現了SessionBean接口.供實現會話的bean試用.其中SessionBean定義了企業Bean類必須實現的若干方法.
           * 存在ejbCreate()方法.同Home對象的create()方法一致.
           * 并且必須存在相關的業務方法.
           * 無狀態的SessionBean并不會試用到ejbActive()和ejbPassivate()方法.
           *
           *
           * @author 安文豪 anwenhao@risesoft.net Jun 3, 2007 2:31:08 AM
           */


          package com.ibm.ejb.test;

          import java.io.File;
          import java.io.FileInputStream;
          import java.io.IOException;
          import java.util.Properties;

          import javax.ejb.CreateException;
          import javax.ejb.RemoveException;
          import javax.naming.Context;
          import javax.naming.InitialContext;
          import javax.naming.NamingException;
          import javax.rmi.PortableRemoteObject;
          /**
           * 客戶端代碼示例.用于調用簡單,無狀態SessionBean中的方法.
           */
          public class HelloClient {

           public static void main(String[] args) throws NamingException, CreateException, RemoveException, IOException{
            Properties prop = new Properties();
            File file = new File("ejbconfig.properties");
            FileInputStream input = new FileInputStream(file);
            prop.load(input);
            /**
             * 獲得JNDI初始上下文
             * 初始上下文是鏈接JNDI樹的入口.借助環境屬性能夠完成JNDI驅動,服務器的網絡地址等的設置.
             */
            Context ctx = new InitialContext(prop);
            Object obj = ctx.lookup("Hello");
            /**
             * 獲得Home對象的引用.
             */
            HelloHome helloHome = (HelloHome)PortableRemoteObject.narrow(obj,HelloHome.class);
            /**
             * 使用工廠來創建Hello Ejb對象
             */
            Hello hello = helloHome.create();
            /**
             * 調用EJB對象的Hello方法.他將委派給EJB Bean類實例
             * 一旦接受到響應結果他便會返回.
             */
            System.out.println(hello.hello());
            hello.remove();
           }

          }


          posted on 2007-06-03 03:05 安文豪 閱讀(1553) 評論(1)  編輯  收藏

          FeedBack:
          # re: EJB完整示例
          2007-06-04 16:05 | 壞男孩
          寫的好啊,頂  回復  更多評論
            

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


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           

          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(6)

          隨筆檔案(28)

          文章分類(3)

          文章檔案(4)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 86552
          • 排名 - 667

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 长顺县| 甘南县| 普洱| 如东县| 阳春市| 贵溪市| 平安县| 馆陶县| 宝坻区| 平阳县| 调兵山市| 靖江市| 杭州市| 滦南县| 会宁县| 油尖旺区| 碌曲县| 宜州市| 汝城县| 奉化市| 永川市| 霞浦县| 镇安县| 乌审旗| 申扎县| 南和县| 武鸣县| 阜平县| 阜新市| 菏泽市| 大冶市| 台江县| 浦县| 晋宁县| 班玛县| 香格里拉县| 卓尼县| 云龙县| 日喀则市| 南充市| 合阳县|