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规范中要求的配置,是容器无关的。下面是一个实际配置的例子

<ejb-jar>
  <enterprise-beans>

<!-配置会话Bean ->
    <session>
      <ejb-name>HelloBean</ejb-name>
      <home>bean.HelloHome</home>
      <remote>bean.HelloObject</remote>
      <ejb-class>bean.HelloBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
    </session>

    <entity>
<!-配置实体Bean ->
    </entity>
  </enterprise-beans>
</ejb-jar>

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

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

<weblogic-ejb-jar>
  <weblogic-enterprise-bean>
    <ejb-name>HelloBean</ejb-name>
    <stateless-session-descriptor>
    </stateless-session-descriptor>
      <jndi-name>ejb.helloJNDI</jndi-name>
  </weblogic-enterprise-bean>
 <weblogic-ejb-jar>

在Jboss则会有相应的配置文件。

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

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

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

上面这些是我这两天学习所得,知之皮毛,我会在不断学习中不断更新,殷切希望大家指导!

你可能感兴趣的:(bean,MyEclipse,weblogic,jboss,ejb)