EJB系列教程 (轉)

worldblog發表於2007-12-08
EJB系列教程 (轉)[@more@]

系列教程之一(JBuilder4+I1+Vbj411基本設定) 



------東方一蛇原創,如要轉載請註明原作者和網站。

一、前言 

   首先說明,我對JB4(JBuilder4),IAS41(Inprise Application Server)和Vbj411(VisiBroker For )不熟悉,只是自己看了些英文文件和測試了一下,成功了,就將這個寫出來,也許對大家有點用處。對於JB4,IAS41和Vbj411的資料可以去Inprise網站()去查閱。 

二、,

   下載地址為Inprise官方站點:,國內也有,但是比較難找。

   下,安裝過程就沒有什麼說的了,直接執行setup就可以了。



三、配置JBuilder4

   安裝完JB4後,預設的情況下,File --&gt New ---&gtEnterprise下的很多東西應該都是灰色的,不能用,要先安裝並且配置好IAS,Vbj才能夠用的。

   (1)Tools Menu --&gtEnterprise Setup ---&gt

   CORBA選中“VisiBroker”然後EDIT

   在Path for ORB tools下,加入IAS4的bin目錄(這個方法比較簡單)

   在Library for projects下,加入IAS4的lib,具體方法是:點“...”,然後New將出現一個新的對話方塊,輸入你想要的名字,然後“Add”,找到IAS4的lib目錄將其加入進來。最後連續OK,OK...

   (2)Tools Menu --&gtEnterprise Setup ---&gtApplication Server


   IAS4.1下的“IAS installation directory”下框中加入IAS的安裝目錄。

   (3)Project --&gtDefault Project Properties ---&gtPaths


   Required Libraries中加入IAS4的lib下所有jar,具體方法:Add --&gtNew,然後取個你想要的名字,然後,Add,找到IAS4的lib下所有jar,並且加進來。最後,又是連續幾個“OK”... ...



   好了,安裝配置工作做好了,在下一文中,我將簡單的翻譯一篇英文文件,用JBuilder4自己做一個Session Bean EJB,然後透過Client去連線Server。

**********************


EJB系列教程之二(Session beans EJB) ------ 


在這裡,我只介紹操作過程。

一、建立一個工程(project) 

   File ---&gt New Project

   Project name 為:HelloWorld

   選擇一個該專案的根目錄, path,例如:E:ejbproject 

   Finish。

二、建立一個EJB Gruop

   File ---&gt New ---&gt Enterprise ---&gt Empty EJB Group

   輸入名字:Name為:HelloWorld

   OK

三、建立beans

   File ---&gt New ---&gt Enterprise ---&gt Enterprise JavaBean

   Next,將發現Package中已經有了:helloworld

   在Class name中輸入:HelloWorlean 

   Next ---&gtFinish

   用滑鼠雙擊左邊的HelloWorldBean.java,在

public void setSessionContext(SessionContext context) {

sessionContext = context; 

}

後加入一個事件(商業邏輯):

public String getHelloWorld(){

return "Hello World!"; 

}

Save All,然後Ctrl+F9,make,應該是0個錯誤,0個警告。

四、介面的處理

   還是在該介面,HelloWorldBean.java的程式碼下有一個“Bean”,點Bean然後Methods,將核取方塊java.lang.String getHelloWorld()選上。

五、配置描述(Deployment Descriptor) 

   雙擊“HelloWorld.ejbgrp”,在下面展開“HelloWorldBean”

   點“Container Transaction”後,在右邊點“Add”

Interface下是“*”,Method下也是“*”,Transaction attribute下,選擇“Required”

   Save all後,點“Verify”進行效驗,應該是沒有錯誤的。最後Ctrl+F9“make”。

到這裡,服務端已經設定好了。

六、用Client去測試。

   File ---&gt New ---&gt Enterprise ---&gt EJB Test Client

   發現Enterprise JavaBean中是:HelloWorldBean

   Package中是:helloworld

   在Class中輸入類名,比如:HelloWorldClient

   在左邊,點“HelloWorldClient.java”在程式碼中,有一個try...catch塊,在try中的最後面加上下面程式碼,去Serve端:

try { 

//get naming context 

Context ctx = new InitialContext(); 



//look up jndi name  

ref = ctx.lookup("HelloWorld"); 



//cast to Home interface 

helloWorldHome = (HelloWorldHome) PortableRemoteObject.narrow(ref, HelloWorldHome.class); 

HelloWorld hello=helloWorldHome.create(); 

String str=hello.getHelloWorld(); 

System.out.println(str); 

}

catch(Exception e) 

{

e.printStackTrace(); 



七、配置

   滑鼠右鍵點HelloWorldHome.java

   Properties ---&gtBuild ---&gtVisiBroker

   將Generate IIOP勾上

   OK

   Save All 

   Ctrl+F9 "make"

八、執行 

   啟動VisiBroker Smart Agent,方法是:執行visibroker的bin目錄下的:osagent.exe。(也可以利用JB4的選單配置工具,將Smart Agent加到JB4的選單下,直接從選單啟動)

   F9“Run”啟動Container------這個過程也許要花點時間哦。



   右鍵HelloWorldClient.java點“Run”將顯示“Hello World!”。


   如果你看到了,說明已經成功了,否則是哪個步驟不小心,再仔細看吧。 
**********************************************************************


EJB系列教程之三(介紹Session beans)(譯) 


一、Session beans簡單介紹 

   Session beans通常用於一個客戶端的會話。Session beans中的事件通常為客戶端設定的任務和程式。它僅僅存在在客戶連線的過程中,也可以說,session beans體現EJB server的Client , 它通常為Client提供服務。除了你必須用到持續不變的資料外,通常使用session beans。

二、兩種型別的Session beans 

   有態Session beans和無態Session beans。

   有態Session beans用於單個client,用來保持這個client的狀態資訊。例如,網上購物中的定單就是一個session beans。客戶從物品列表中選取物品到定單中。最後,客戶要透過它來計算總價,付款。

   無態Session beans用於多個client,它不由單個client所控制。例如:室中,聊天人的列表就是一個無態Session beans,因為每加一個人,該列表都會變化的。 

三、生命週期

   (1)有態Session beans當client呼叫Session bean 的home介面的create()事件的時候就開始存在。Container就開始建立一個新的session bean例項,並且初始化,返回資訊給cl端。在這個過程中,Container呼叫sessionbean介面的setSessionContext()事件和ejbCreate()事件。

   當一個Client透過遠端或者HOME介面呼叫remove()事件時,Container將呼叫ejbRemove()事件,以後,這個bean的生命週期就結束了。此時,如果client試著再去呼叫beans的事件,將產生一個java..NoSuchObjectException異常。 

   (2)無態Session beans當client呼叫Session bean 的home介面的create()事件的時候就開始生存。Container就開始建立一個新的session bean例項,返回資訊給clinet端。在這個過程中,Container呼叫sessionbean介面的setSessionContext()事件和ejbCreate()事件。這個新的bean就被加到一個“池”中,供Client端用。由於不帶任何Client端特有的狀態,所以這個“池”中的任何beans都可以被client端用。

   當Container從“池”中移掉一個的時候,將呼叫bean物件的ejbRemove事件。需要注意的是:呼叫create()和remove()事件,並不能從無態Session beans的 "池"中增加和移走無態Session beans。在整個過程中,無態Session beans的生命週期是由Container來控制的。 


*******************


EJB系列教程之四(下配置EJB)-

 

------本站文章為東方一蛇原創,如要轉載請註明原作者和網站。


一、前言 

   Jboss為,完全免費的Appliaction Server,對於有很好的支援,可以和完美結合。 

二、下載,安裝

   下載地址為Jboss官方站點:,我下載的是Jboss2,而且和tomcat一起的,這樣避免了單個下載一起配置的問題。下載地址是:jboss_tomcat.zip

   下載完,解壓到一個目錄,我這裡用E:jboss_tomcat作為例子。下面有子目錄:

E:jboss_tomcatjboss2



E:jboss_tomcattomcat32b7

注意,我這裡的目錄稍微做了改動的,這樣如果你不將TOMCAT_HOME加到CLASSPATH中,E:jboss_tomcatjboss2binrun_with_tomcat.bat這個檔案要做相應改動才能正常執行。



三、配置執行

   基本上不要什麼配置的,只要安裝好了,當然,最好將TOMCAT_HOME加到CLASSPATH中。

這樣,E:jboss_tomcatjboss2binrun_with_tomcat.bat這個檔案前的TOMCAT_HOME就可以去掉了。

執行E:jboss_tomcatjboss2binrun_with_tomcat.bat這個檔案,這樣,Tomcat埠在8080,Jboss為8083,

執行將出現tomcat首頁,

執行將出現無錯誤的空白頁,



四、測試EJB

   (1)啟動JBOSS:

方法見上:

   (2)下載程式碼:



解開,出現如下目錄:

interest/com

interest/docs

...

全部copy到jboss2下examples目錄下,如果沒有examples目錄,建立一個,結構如下:

E:jboss_tomcatjboss2examplesinterest...

將檔案E:jboss_tomcatjboss2examplesinterestinterest.jar複製到:

E:jboss_tomcatjboss2deploy下:

在CLASSPATH中加入如下檔案:

E:jboss_tomcattomcat32b7lib.jar;E:jbossclientjboss-client.jar;E:jbossclientjnp-client.jar;E:jbosslibextejb.jar;E:jbossexamplesinterestinterest-client.jar 

為了測試Client透過servlet呼叫EJB,必須將: E:jboss_tomcatjboss2examplesinterest下EJB.class和EJB.java複製到:

E:jboss_tomcattomcat32b7appsROOTWEB-INFclasses目錄下

重新啟動JBOSS_TOMCAT


   (3)command下client測試執行:

command下,進入目錄E:jboss_tomcatjboss2examplesinterest

java InterestClient

將出現:

Got context

Got reference 

Interest on 1000 units, at 10% per period, compounded over 2 periods is: 210.00000000000023 

jboss視窗將出現:

[Interest] Someone called `calculateCompoundInterest!' 

   (4)web下client透過Servlet測試執行:



將出現:

Interest on 1000 units, at 10% per period, compounded over 2 periods is: 210.00000000000023 

jboss視窗將出現: 

[Interest] Someone called `calculateCompoundInterest!' 

到此已經成功了。

***************


EJB系列教程之五(Orion下配置EJB2.0)

 

-------本站文章為東方一蛇原創,如要轉載請註明原作者和網站。


一、準備

你必須有以下條件: 

JDk1.22或者更高版本 

Java 3 Enterprise Edition(J2EE) 

Orion Application Server 1.38或者更高版本 

Jakarta-Ant(用這個工具打包EAR檔案,在下載的ZIP檔案中,已經建立好了,所以,該工具可以不要) 

二、下載檔案: 



解開後,建立如下結構: 

X:Orion-test-appsTest20Cmpeb:該目錄下包含java bean檔案 

X:Orion-test-appsTest20Cmpservlet:該目錄下有servlet的java檔案 

其中,X為你的本地 

[自己打包EAR檔案的方法: 進入X:Orion-test-apps目錄執行: ant -buildfile package. ] 

三、配置: 

X:j2sdkee1.2.1libj2ee.jar 

和 

X:Orion-test-apps 

加到CLASSPATH環境變數中 

另外,Orionconfig目錄下修改2個檔案: 

server.xml中, 在之前,加: 

 

default-web-site.xml中,之前,加: 

 

四、測試執行 

重新啟動Orion Application Server 

[port]/Test20Cmp/Test20 

將顯示: 

Sample20Eb GET Called 

Command 下Orion將有類似下面的輸出: 

MakeSample20Eb.doPost() called 

new InitialContext being called 

context.lookup being called 

PortableRemoteObject.narrow being called 

home.create being called 

... ... 

makeNew method has returned 

五、檢測資料 

進入Orionbin目錄下,啟動Orion下自己帶的工具: 

java -cp h.jar DatabaseManager 

在URL中輸入: 

:HypersonicSQL:../database/defaultdb 

點“OK”將進入資料庫管理。 


***********************************

   最後說明,本人english比較差,翻譯的時候肯定會存在不少的錯誤,請大家原諒。 

本站文章歸東方一蛇所有,如要轉載,請註名原文作者和網站。 OK--&gt


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-989740/,如需轉載,請註明出處,否則將追究法律責任。

相關文章