新聞中心
EJB是什么呢?
EJB是一個J2EE體系中的組件.再簡單的說它是一個能夠遠(yuǎn)程調(diào)用的javaBean.它同普通的javaBean有兩點(diǎn)不同.
第一點(diǎn),就是遠(yuǎn)程調(diào)用.
第二點(diǎn),就是事務(wù)的功能,我們在EJB中聲明的事務(wù)會通過容器幫助我們來處理.支持EJB的SERVER有以下幾個:
Weblogic
Webspere
Appserver
Jboss

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)公司專業(yè)提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站制作(企業(yè)站、成都響應(yīng)式網(wǎng)站建設(shè)公司、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!
我選用的是weblogic+JBuilder9開發(fā).回過來我們繼續(xù)說這個EJB的原理.它是分布式的.這個的意思其實(shí)很簡單不需要想太復(fù)雜.就是我們把事情不是交給一個人去處理.而是把事情劃分一下交給多個人處理,而多個人處理之后我們讓這個分配的人來把最后得到的結(jié)合處理.
EJB我們首先要明確它是放在服務(wù)器端的組件.
一共有三種EJB
1,SessionBean 復(fù)雜處理業(yè)務(wù)邏輯的.
2,EntityBean 處理數(shù)據(jù)
3,MessageBean 消息Bean異步,耦合的處理.
那么誰能調(diào)用EJB呢?也或者說EJB被誰調(diào)用呢?我們說它就是放在server的一個能夠遠(yuǎn)程調(diào)用的javaBean.所以它可以被Java的語言調(diào)用servlet,jsp等都o(jì)k的說.而且它還可以被C++語言調(diào)用.很強(qiáng)大吧.EJB的最基本的出發(fā)點(diǎn)就是推動Java在服務(wù)器端的編程能力.所以呢它的功能就我個人來看太強(qiáng)悍了..= =
這個遠(yuǎn)程調(diào)用是通過什么呢.Java是通過RMI-JRMP(java遠(yuǎn)程方法調(diào)用)協(xié)議來調(diào)用.EJB就是通過這個來實(shí)現(xiàn)的.C++是通過Corba-iiop協(xié)議來調(diào)用的.這個協(xié)議支持兩端不同語言的調(diào)用.Corba是公共對象請求代理服務(wù)iiop是網(wǎng)絡(luò)內(nèi)部對象協(xié)議.
下面我們來簡單說一下這個分布式的調(diào)用??蛻舳税l(fā)送一個請求給服務(wù)器首先是傳給stub代理類它發(fā)送參數(shù)給skeleton委托類然后這個類調(diào)用我們的實(shí)現(xiàn)類取得結(jié)果再遠(yuǎn)路返回。這樣一個分布處理就結(jié)束了。后面會具體的結(jié)合代碼分析。先記住這個大致的結(jié)構(gòu)就好。
我們寫一個EJB需要做那些工作呢?
1,寫一個接口繼承EJBObject 這個類作為遠(yuǎn)程接口
2,寫一個接口繼承EJBHome 這個類里有一個方法是create()它返回接口類型。
3,寫一個Bean繼承SessionBean, 這個類里包含一個create()方法和一個業(yè)務(wù)方法。
4,寫一個ejb-jar.xml 這個xml是把上面的三個文件組合起來
5,寫一個weblogic-ejb-jar.xml 這個xml是連接查找source的作用
上面的兩個xml文件需要放在META-INF目錄下。而以上這些類都需要打包在一個jar文件中然后在server部署。這樣就完成了EJB的部署。例如:
|
AddCountHome.java這個是繼承EJBHome的類.它里面包含的這個create()返回的是AddCount類型對象.
|
下面這個是我們的Bean.這個類繼承了SessionBean
|
#p#
這個里面我們實(shí)現(xiàn)了業(yè)務(wù)的方法addCount(){a+b;}。同時需要指出一下它的其他方法(這些僅僅簡單指出后面的教程有詳細(xì)說明)。首先是ejbCreate()這個方法實(shí)際上是對我們的遠(yuǎn)程接口的實(shí)現(xiàn)類的初始化.setSessionContext(SessionContext ctx)設(shè)置context.容器是在這個方法之后產(chǎn)生的實(shí)例.
ejbRemove()毫無疑問是一個實(shí)例結(jié)束移除.ejbActivate()激活方法.它的作用是激活鈍化.ejbPassivate()鈍化方法.當(dāng)實(shí)例的內(nèi)容長時間不進(jìn)行處理的時候就會鈍化.也就是閑置的意思.以上這幾個是SessionBean的基本方法.希望大家可以自己慢慢理解.之后也會反復(fù)說到這些的.
下面我們寫xml文件
首先是ejb-jar.xml
|
下面這個是weblogic-ejb-jar.xml
|
我們接下來寫測試類
|
測試類的hash是初始化我們的weblogic的xml信息.這里的t3://localhost:7001是weblogic的特殊協(xié)議指向的是ip位置.然后lookup("rainnight")查找jndi,而實(shí)際上也就是通過這個jndi找到我們的ejb組件.通過得到的對象我們對比一下是不是Home類型.然后我們執(zhí)行home.create()產(chǎn)生AddCount的實(shí)例.最后調(diào)用方法就ok了.
下面是如何執(zhí)行這個的方法.
第一步,jdk,weblogic.需要快些下載安裝啦..
第二步,配置環(huán)境變量.基本的java的環(huán)境變量如何配置我就不說了.
這里需要特別指出要把java目錄下的lib中的tools.jar加載到我們的class_path中.
然后我們再把weblogic的目錄下的server目錄下的lib中的weblogic.jar找到也加載進(jìn)來.
這樣我們編譯需要的東西就ok了.
第三步,編譯java類.
第四步,打包.jar cvf AddCount.jar *.class META-INF/*.xml
第五步,java weblogic.appc AddCount.jar
第六步,部署到weblogic中.
第七步,運(yùn)行Test類.
【編輯推薦】
- MyEclipse+Weblogic開發(fā)EJB組件
- Java中的EJB的介紹
- 精通EJB組件和EJB容器
- Java使用EJB容器的詳細(xì)概述
- 利用mod_jk整合Apache與JBoss
分享名稱:EJB2.0教程詳解EJB技術(shù)及實(shí)現(xiàn)原理
新聞來源:http://www.dlmjj.cn/article/djeceig.html


咨詢
建站咨詢
