刚刚对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中的某个商务方法:
上面这些是我这两天学习所得,知之皮毛,我会在不断学习中不断更新,殷切希望大家指导!