使用Eclipse+GlassFish构建简单EJB

EJB,即企业级JavaBean。它是一个标准,而不是一个产品。其存在的目的是为后台开发人员提供一个标准的开发标准。它主要分成SessionBean,EntityBean和MessageDrivenBean。简而言之就是**服务器端**的一个标准。

在开发中我们需要先创建一个EJB项目,并在此EJB项目的ejbModule下创建一个带包名的SessionBean。然后在这个SessionBean中可以实现它的远程接口和本地接口,(以远程调用方式发布或者以本地调用方式发布)给出具体处理逻辑。当客户端和EJB位于同一JVM下时将进行本地调用或者远程调用,而当客户端和EJB位于两个不同的JVM时将必须通过远程调用的方式处理。

远程调用EJB,客户端拥有的是一个EJB的拷贝,调用是以值传递的方式进行的。具体见下图所示(盗图求原谅)通过远程方式调用时,传递的参数若是一个PoJo类,则其必须实现序列化接口,以字节码方式传递参数,而使用本地调用则相应的PoJo类可以不必实现序列化接口。

远程调用因为客户端和服务器不在同一个JVM上,就涉及到诸多有关分布式系统中的概念,如存根,骨架等,这些概念可以自行查找理解。

使用Eclipse+GlassFish构建简单EJB_第1张图片

本地调用EJB是以传地址方式进行的。

使用Eclipse+GlassFish构建简单EJB_第2张图片

远程调用与本地调用相比多了建立socket连接和将参数序列化进行传输和在服务器端将参数进行反序列化的过程,因此,远程调用比本地调用的开销要大很多。

上面搞清楚了EJB的远程调用和本地调用的区别和联系。

①下图是创建的第一个项目,是一个EJB项目,里面创建一个Session Bean,实现本地接口和远程接口,并给出相应的处理逻辑:

使用Eclipse+GlassFish构建简单EJB_第3张图片

                                          EJB项目结构图

使用Eclipse+GlassFish构建简单EJB_第4张图片

                                          SessionBean本地接口

使用Eclipse+GlassFish构建简单EJB_第5张图片

                                            SessionBean远程接口

使用Eclipse+GlassFish构建简单EJB_第6张图片

                                                    SessionBean具体实现

②以远程调用为例,创建第二个项目,它是一个DWeb项目,实现远程调用EJB。

首先BuildPath中引入我们的HelloEJB项目,具体作用就是导入jar包啊,通过buildpath方式引入jar只是将指针指向存放jar包的位置,在同一台电脑中没有问题,在不同电脑中则会找不到资源。在不同电脑中通过lib中引入jar包的方式导入jar。

然后在src下建立一个java类,目的是在DWeb中实现对EJB的SessionBean的调用,通过实例化一个SessionBean的对象来调用该对象的接口实现功能。例子如下:


使用Eclipse+GlassFish构建简单EJB_第7张图片

接着,在DWeb项目的WebContent下建一个JSP页面,来实例化一个我们刚刚在src目录下创建的类,来将调用结果展现在页面上:

使用Eclipse+GlassFish构建简单EJB_第8张图片

③最后,再创建一个Enterprise  Application Project,将上面的EJB和DWeb项目进行整合发布,这样我们在部署时就不需要将我们的EJB项目HelloEJB和我们的DWeb项目两个项目发布(设想一下,要是有多个EJB项目和多个DWeb项目,这样的发布必然是麻烦的,而且容易出现问题的),创建的过程如下图所示:
使用Eclipse+GlassFish构建简单EJB_第9张图片

创建完成时,记得在Modules目录下面将上述两个项目引入,这样在部署在服务器上的时候只需要将最后第三个企业级项目部署即可:
使用Eclipse+GlassFish构建简单EJB_第10张图片

综上,就完成了一个简单的EJB项目啦哈哈哈,这是在学习学校开设的WEB服务技术与应用课上所学的知识,自己学识尚浅,还会将EJB这方面进行深度的学习并且更新相关博文!!!

 

 

 

 

 

 

 

 

你可能感兴趣的:(使用Eclipse+GlassFish构建简单EJB)