posts - 30,  comments - 85,  trackbacks - 0

                   本文是為想在JBOSS環(huán)境下進(jìn)行EJB開(kāi)發(fā)的讀者而寫(xiě)的,在閱讀本文之前,你最好對(duì)EJB有一個(gè)基本了解。

            JBOSS是一個(gè)開(kāi)放源碼的免費(fèi)EJB服務(wù)器,它實(shí)現(xiàn)了其它J2EE所規(guī)定的大多數(shù)功能,現(xiàn)在sun公司已經(jīng)把JBOSS作為J2EE1.4的標(biāo)準(zhǔn)實(shí)現(xiàn)服務(wù)器了。    

                  以下是我從源代碼中摘出來(lái)的部分注釋?zhuān)?qǐng)結(jié)合工程文件查看。
                  /Files/anwenhao/EJBDemo.part1.rar
                  /Files/anwenhao/EJBDemo.part2.rar
                  /Files/anwenhao/EJBDemo.part3.rar
                  /Files/anwenhao/EJBDemo.part4.rar


           /**
           * 遠(yuǎn)程接口
           *
           * 遠(yuǎn)程接口支持EJB組件暴露的所有業(yè)務(wù)方法.
           * 遠(yuǎn)程接口集成于EjbObject 容器生成的EJB對(duì)象繼承了遠(yuǎn)程接口EjbObject
           *
           * 遠(yuǎn)程接口中實(shí)現(xiàn)的方法即為業(yè)務(wù)方法.
           *
           * 
           */

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

          /**
           * 本地接口
           *
           * 當(dāng)本地用戶(hù)client同EJB本地對(duì)象交互時(shí),需要使用這一接口.容器廠商會(huì)實(shí)現(xiàn)這一接口而對(duì)應(yīng)的實(shí)現(xiàn)對(duì)象就是EJB本地對(duì)象
           *
           * 本地接口需要繼承EJBLocalObject 與遠(yuǎn)程接口的差別是本地接口并不拋出RemoteException
           *
           *
           */

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

          /**
           * 無(wú)狀態(tài)的SessionBean.
           *
           * 無(wú)狀態(tài)的Bean實(shí)現(xiàn)了SessionBean接口.供實(shí)現(xiàn)會(huì)話的bean試用.其中SessionBean定義了企業(yè)Bean類(lèi)必須實(shí)現(xiàn)的若干方法.
           * 存在ejbCreate()方法.同Home對(duì)象的create()方法一致.
           * 并且必須存在相關(guān)的業(yè)務(wù)方法.
           * 無(wú)狀態(tài)的SessionBean并不會(huì)試用到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;
          /**
           * 客戶(hù)端代碼示例.用于調(diào)用簡(jiǎn)單,無(wú)狀態(tài)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樹(shù)的入口.借助環(huán)境屬性能夠完成JNDI驅(qū)動(dòng),服務(wù)器的網(wǎng)絡(luò)地址等的設(shè)置.
             */
            Context ctx = new InitialContext(prop);
            Object obj = ctx.lookup("Hello");
            /**
             * 獲得Home對(duì)象的引用.
             */
            HelloHome helloHome = (HelloHome)PortableRemoteObject.narrow(obj,HelloHome.class);
            /**
             * 使用工廠來(lái)創(chuàng)建Hello Ejb對(duì)象
             */
            Hello hello = helloHome.create();
            /**
             * 調(diào)用EJB對(duì)象的Hello方法.他將委派給EJB Bean類(lèi)實(shí)例
             * 一旦接受到響應(yīng)結(jié)果他便會(huì)返回.
             */
            System.out.println(hello.hello());
            hello.remove();
           }

          }


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

          FeedBack:
          # re: EJB完整示例
          2007-06-04 16:05 | 壞男孩
          寫(xiě)的好啊,頂  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

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

          常用鏈接

          留言簿(6)

          隨筆檔案(28)

          文章分類(lèi)(3)

          文章檔案(4)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 86710
          • 排名 - 670

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 华坪县| 廉江市| 万源市| 迁安市| 莎车县| 石渠县| 福州市| 盐源县| 兴城市| 大英县| 大安市| 漳浦县| 夹江县| 永登县| 盘山县| 萍乡市| 锦屏县| 孝义市| 如皋市| 江源县| 出国| 满洲里市| 凤翔县| 雷波县| 高青县| 长丰县| 德安县| 文成县| 无锡市| 钟祥市| 锡林浩特市| 谷城县| 天祝| 双桥区| 中超| 洪江市| 荃湾区| 永丰县| 册亨县| 台湾省| 中阳县|