EJB方面 1、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别?
, `: R. h; d$ ]+ X
) V! d" N) [( X ^ 答:规范内容包括Bean提供者,应用程序装配者,EJB容器,EJB配置工具,EJB服务提供者,系统管理员。这里面,EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建,撤消,激活,去活,与数据库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.....* v9 p' H' e' U, F3 O- t) z
2、EJB与JAVA BEAN的区别?
1 j1 Z0 m8 W6 [8 f0 }: b4 }9 A+ a
答:Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。
$ _5 C; s. S- ]; G( ?( i- u) y 3、EJB的基本架构
* m/ F2 o$ Y( i1 Y: v7 p" b+ i8 z l6 S2 z; o1 @) X4 X
答:一个EJB包括三个部分:. e! Q) b$ C6 i
Remote Interface 接口的代码0 l1 ?. i, y7 i6 v
package Beans;
" _7 I# Y2 {5 z% _7 e import javax.ejb.EJBObject;
( ^# y* B/ V& a9 ]: [6 V- {$ d import java.rmi.RemoteException;, Y; h1 P! d8 n
public interface Add extends EJBObject/ a+ g* p% w* R, p4 |: P& ]3 d
{. e1 U, J9 V( ?. K: o0 b% V
//some method declare
- ~( L$ @& P2 i0 r, o }% d; q, f3 ]) z: K4 y# C
Home Interface 接口的代码- w! j( X Z$ {2 L8 r: \
package Beans;
, a4 l& q% a4 ~0 V _, I5 G import java.rmi.RemoteException;9 z+ ~. r+ o4 w% `# L
import jaax.ejb.CreateException;
/ V0 @4 m: F+ k% b6 M* E8 F import javax.ejb.EJBHome;, b% d1 P, y3 e) T% Y9 ~+ b4 z
public interface AddHome extends EJBHome {: P& f9 }; n+ O
{1 w+ u) r+ ~5 |5 G4 P+ w! F2 x* G$ i
//some method declare
5 H" h1 |# E5 R }
) C8 h2 K3 T1 o8 H9 V: r6 M5 ~1 M EJB类的代码
8 v* A6 L# w4 k: B package Beans;+ b. t: g- p! a. F( X. w0 }6 E `% [
import java.rmi.RemoteException;
/ {7 l& x0 p# b- y. Q, E4 P& F import javax.ejb.SessionBean;
! D* i# w* M5 | import javx.ejb.SessionContext; o, j2 o$ q9 {0 B# L# g
public class AddBean Implements SessionBean' t/ c3 G) |! T- d8 w+ H& N
{
5 P% O- g& y9 y //some method declare
" j' [9 z1 k! z+ M) }/ {& d } |