Thinking

快乐编程,开心生活
posts - 21, comments - 27, trackbacks - 0, articles - -5
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

EJB流程初探

Posted on 2007-02-06 17:33 lixw 阅读(634) 评论(0)  编辑  收藏

昨天看了一天的EJB,才刚刚对EJB的流程有了一点了解,现在总结出来,请大家多多指教:

1、创建自己的Bean(现在我只学习了一个会话Bean的例子),其中包含商务方法的实现;

(2--5的操作可由容器自动完成,如WebLogic中的Build EJB,如果在MyEclipse中,可以在生成Bean的时候选择是用XDoclet自动生成以下接口)

2、创建远程接口(继承自EJBObject),其中包括商务方法的空实现(必须抛出远程异常),客户端通过该接口与EJB对象交互,

    它的具体实现由EJB容器供应商实现,实现的对象就是EJB对象,它拥有对实际Bean的引用;

3、创建Home接口(继承自EJBHome),其中至少包含一个create()方法,这个方法返回EJB对象,并抛出远程异常,

    它的作用相当于EJB对象的生成库;

(4和5是可选的操作,本地用户可以通过这些接口而不是远程接口来调用Bean)

4、创建本地接口(继承自EJBLocalObject),方法跟远程接口中的相当,只是不需要抛出远程异常;

5、创建本地Home接口(继承自EJBLocalHome),方法跟Home接口相当,同样不需要抛出远程异常;

6、如果采用自动生成接口的话,同时会在META-INF生成下生成多个XML配置文件:

  ejb-jar.xml:它是EJB规范中要求的配置,是容器无关的。下面是一个实际配置的例子

 1 < ejb-jar >
 2    < enterprise-beans >
 3
 4 <! -配置会话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 <! -配置实体Bean- >
16      </ entity >
17    </ enterprise-beans >
18 </ ejb-jar >
19

 还有一个与特定容器相关的配置文件:

如WebLogic中配置文件为weblogic-ejb-jar.xml,下面是一个实际配置的例子:

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则会有相应的配置文件。

7、现在我们看到我们的Bean、Home接口、EJBObject接口已经与特定的命名绑定;

8、现在客户端要调用Bean中的某个商务方法:

  • 通过JNDI查找到Home对象,获得它的引用;
  • Home对象是EJB对象的生成库,由它创建生成新的EJB对象;
  • 客户端调用EJB对象的商务方法;
  • EJB对象将请求委托给实际的Bean;
  • Bean实现商务方法。

 


只有注册用户登录后才能发表评论。


网站导航: