Thinking

          快樂編程,開心生活
          posts - 21, comments - 27, trackbacks - 0, articles - -5
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          EJB流程初探

          Posted on 2007-02-06 17:33 lixw 閱讀(640) 評論(0)  編輯  收藏

          昨天看了一天的EJB,才剛剛對EJB的流程有了一點(diǎn)了解,現(xiàn)在總結(jié)出來,請大家多多指教:

          1、創(chuàng)建自己的Bean(現(xiàn)在我只學(xué)習(xí)了一個(gè)會(huì)話Bean的例子),其中包含商務(wù)方法的實(shí)現(xiàn);

          (2--5的操作可由容器自動(dòng)完成,如WebLogic中的Build EJB,如果在MyEclipse中,可以在生成Bean的時(shí)候選擇是用XDoclet自動(dòng)生成以下接口)

          2、創(chuàng)建遠(yuǎn)程接口(繼承自EJBObject),其中包括商務(wù)方法的空實(shí)現(xiàn)(必須拋出遠(yuǎn)程異常),客戶端通過該接口與EJB對象交互,

          ??? 它的具體實(shí)現(xiàn)由EJB容器供應(yīng)商實(shí)現(xiàn),實(shí)現(xiàn)的對象就是EJB對象,它擁有對實(shí)際Bean的引用;

          3、創(chuàng)建Home接口(繼承自EJBHome),其中至少包含一個(gè)create()方法,這個(gè)方法返回EJB對象,并拋出遠(yuǎn)程異常,

          ??? 它的作用相當(dāng)于EJB對象的生成庫;

          (4和5是可選的操作,本地用戶可以通過這些接口而不是遠(yuǎn)程接口來調(diào)用Bean)

          4、創(chuàng)建本地接口(繼承自EJBLocalObject),方法跟遠(yuǎn)程接口中的相當(dāng),只是不需要拋出遠(yuǎn)程異常;

          5、創(chuàng)建本地Home接口(繼承自EJBLocalHome),方法跟Home接口相當(dāng),同樣不需要拋出遠(yuǎn)程異常;

          6、如果采用自動(dòng)生成接口的話,同時(shí)會(huì)在META-INF生成下生成多個(gè)XML配置文件:

          ??ejb-jar.xml:它是EJB規(guī)范中要求的配置,是容器無關(guān)的。下面是一個(gè)實(shí)際配置的例子

          ?1 < ejb-jar >
          ?2 ?? < enterprise-beans >
          ?3
          ?4 <! -配置會(huì)話Bean- >
          ?5 ???? < session >
          ?6 ?????? < ejb-name > HelloBean </ ejb-name >
          ?7 ?????? < home > bean.HelloHome </ home >
          ?8 ?????? < remote > bean.HelloObject </ remote >
          ?9 ?????? < ejb-class > bean.HelloBean </ ejb-class >
          10 ?????? < session-type > Stateless </ session-type >
          11 ?????? < transaction-type > Container </ transaction-type >
          12 ???? </ session >
          13
          14 ???? < entity >
          15 <! -配置實(shí)體Bean- >
          16 ???? </ entity >
          17 ?? </ enterprise-beans >
          18 </ ejb-jar >
          19

          ?還有一個(gè)與特定容器相關(guān)的配置文件:

          如WebLogic中配置文件為weblogic-ejb-jar.xml,下面是一個(gè)實(shí)際配置的例子:

          1 < weblogic-ejb-jar >
          2 ?? < weblogic-enterprise-bean >
          3 ???? < ejb-name > HelloBean </ ejb-name >
          4 ???? < stateless-session-descriptor >
          5 ???? </ stateless-session-descriptor >
          6 ?????? < jndi-name > ejb.helloJNDI </ jndi-name >
          7 ?? </ weblogic-enterprise-bean >
          8 ? < weblogic-ejb-jar >

          在Jboss則會(huì)有相應(yīng)的配置文件。

          7、現(xiàn)在我們看到我們的Bean、Home接口、EJBObject接口已經(jīng)與特定的命名綁定;

          8、現(xiàn)在客戶端要調(diào)用Bean中的某個(gè)商務(wù)方法:

          • 通過JNDI查找到Home對象,獲得它的引用;
          • Home對象是EJB對象的生成庫,由它創(chuàng)建生成新的EJB對象;
          • 客戶端調(diào)用EJB對象的商務(wù)方法;
          • EJB對象將請求委托給實(shí)際的Bean;
          • Bean實(shí)現(xiàn)商務(wù)方法。

          ?


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 武城县| 铜鼓县| 贵德县| 宝丰县| 舒城县| 武强县| 伽师县| 松溪县| 寻甸| 敖汉旗| 玉山县| 长葛市| 泰安市| 翁牛特旗| 南江县| 三都| 太白县| 西盟| 桂平市| 泗水县| 忻州市| 若尔盖县| 武鸣县| 淳安县| 关岭| 招远市| 枣强县| 武隆县| 那坡县| 海安县| 石河子市| 蓬莱市| 绿春县| 青浦区| 民权县| 渭源县| 娄烦县| 龙泉市| 福州市| 涟源市| 五指山市|