昨天看了一天的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í)際配置的例子

?2

?3

?4

?5

?6

?7

?8

?9

10

11

12

13

14

15

16

17

18

19

?還有一個(gè)與特定容器相關(guān)的配置文件:
如WebLogic中配置文件為weblogic-ejb-jar.xml,下面是一個(gè)實(shí)際配置的例子:

2

3

4

5

6

7

8

在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ù)方法。
?