上一篇文章里詳細(xì)介紹了EJB 3.0的開發(fā)環(huán)境的搭建,本文以上文中所搭建好的開發(fā)環(huán)境,給大家簡(jiǎn)單的介紹下在NetBeans下去開發(fā)企業(yè)EJB的流程,以一個(gè)簡(jiǎn)單的示例程序展開介紹.
一、建立EJB模塊
這一步很簡(jiǎn)單,選擇“文件”菜單里的“新建項(xiàng)目”選項(xiàng),在項(xiàng)目類別里選擇“企業(yè)”,在右邊項(xiàng)目選項(xiàng)里選擇“EJB模塊”,詳細(xì)如下圖示:

二、建立包和會(huì)話Bean類
在上面建立的EJB模塊里新建立一個(gè)包,如:com.beniao.dayone,然后建立一個(gè)無狀態(tài)的會(huì)話Bean及一個(gè)遠(yuǎn)程接口。詳細(xì)如下:

例如建立一個(gè)Hello的無狀態(tài)會(huì)話Bean,和一個(gè)遠(yuǎn)程接口,如下圖示:

三、添加商業(yè)方法
OK,上面Bean已經(jīng)建立,現(xiàn)在就是給EJB Bean添加商業(yè)方法的時(shí)候了,這里可以使用NetBeans為我們提供的強(qiáng)大支持,來添加方法以及接口里的定義,在Bean里點(diǎn)"右鍵",在彈出的菜單里選擇"EJB方法"----添加Business方法便OK.如下如示:

在彈出的窗體里輸入方法名,如果方法有參數(shù)的話,則在下面提供的可視話操作中直接添加參數(shù)就OK了,如下圖:

OK,到此,NetBeans就會(huì)幫我們創(chuàng)建好遠(yuǎn)程接口和無狀態(tài)會(huì)話Bean,并且建立好接口的方法的定義,以及Bean里的方法實(shí)現(xiàn)模型,代碼如下:
1
/** *//**
2
* 遠(yuǎn)程接口
3
* @author Beniao
4
*/
5
@Remote
6
public interface HelloRemote
{
7
void sayHello(String str);
8
}
9
----------------------------------------------
10
/** *//**
11
* 無狀態(tài)會(huì)話Bean
12
* @author Beniao
13
*/
14
@Stateless
15
public class HelloBean implements HelloRemote
{
16
public void sayHello(String str)
{
17
18
}
19
}
四、實(shí)現(xiàn)遠(yuǎn)程接口的Bean方法
從上面代碼段可以清晰的看出,HelloBean這個(gè)無狀態(tài)會(huì)話Bean實(shí)現(xiàn)了遠(yuǎn)程接口HelloRemote(關(guān)于無狀態(tài)會(huì)話Bean及遠(yuǎn)程接口,這些知識(shí)點(diǎn)將在隨后的文章里介紹)。那好,下面我們就來寫這個(gè)Bean的具體實(shí)現(xiàn)。代碼如下:
1
/** *//**
2
* 無狀態(tài)會(huì)話Bean
3
* @author Beniao
4
*/
5
@Stateless
6
public class HelloBean implements HelloRemote
{
7
public void sayHello(String str)
{
8
System.out.println("Hello " + str);
9
}
10
}
很簡(jiǎn)單,就是在傳如的參數(shù)前加一個(gè)“Hello”,然后將其輸出到控制臺(tái)。到這里,我們的EJB模塊就算是開發(fā)完成,下面就是成功生成此模塊,并將其部署到應(yīng)用服務(wù)器上。
五、部署EJB到應(yīng)用服務(wù)期
在部署EJB到應(yīng)用服務(wù)器之前必須啟動(dòng)服務(wù)器,啟動(dòng)方法在上篇文章里有所介紹,這里就不在說明。當(dāng)服務(wù)器啟動(dòng)成功后,點(diǎn)擊EJB項(xiàng)目處右鍵,在彈出的菜單里選擇“取消部署后再次部署”,成功部署就OK了。

現(xiàn)在我們登錄應(yīng)用服務(wù)器,看上面的工作是不是真的成功完成。在服務(wù)器控制臺(tái)上點(diǎn)擊“Application Server”選項(xiàng),然后在右邊選擇“JNDI Browsing”,在彈出的窗體里看是不是已經(jīng)存在了上面所部署的EJB模塊的JNDI,詳細(xì)如下圖:

六、建立應(yīng)用程序調(diào)用EJB模塊
建議一個(gè)JAVA應(yīng)用程序(當(dāng)然其他的類型程序也是可以的),這里需要注意下,EJB模塊開發(fā)完成后總是會(huì)打包為jar的,也就是說在我們的應(yīng)用里需要去調(diào)用EJB模塊的話只需要拿到這個(gè)jar包就OK,關(guān)于本文后面將介紹的是通過添加項(xiàng)目直接就把EJB模塊添加到了自己的應(yīng)用里,這是因?yàn)镋JB是在本機(jī)開發(fā)的,所以可以直接的添加,大家可以看看后面的圖示,實(shí)際上在本機(jī)直接添加EJB模塊,其實(shí)也只是把EJB模塊所部署生成的JAR包添加到了應(yīng)用中。
1. 建立JAVA應(yīng)用程序
這一步很簡(jiǎn)單,這里我就不多說了。
2. 添加EJB所支持的類庫(kù)和EJB模塊
在上一篇文章里對(duì)開發(fā)EJB所需要的包我們建立了一個(gè)為EJB3.0的類庫(kù),這里我們只需要將此類庫(kù)直接添加到應(yīng)用中便OK。操作如下:
添加EJB模塊:選擇“庫(kù)”右鍵,在彈出的菜單里選擇“添加項(xiàng)目”,選擇之前開發(fā)的EJB模塊項(xiàng)目就OK。
添加EJB類庫(kù):選擇“庫(kù)”右鍵,在彈出的菜單里選擇“添加庫(kù)”,找到之前建立的EJB3.0的類庫(kù)添加就OK。
添加了EJB模塊和類庫(kù)后的應(yīng)用目錄結(jié)構(gòu)如下:

3. 編寫測(cè)試程序
測(cè)試程序很簡(jiǎn)單,大家可以直接查看下面的代碼段,這里面的具體原理不是一句兩句話就能夠介紹清楚,所以這里就不作詳細(xì)介紹,有興趣的朋友可以聯(lián)系我,相互交流和討論這些原理問題。
1
package myapp.dayone;
2
3
import javax.naming.Context;
4
import javax.naming.InitialContext;
5
import com.beniao.dayone.*;
6
7
public class Main
{
8
public static void main(String[] args) throws Exception
{
9
Context ctx = new InitialContext();
10
HelloRemote hw = (HelloRemote)ctx.lookup("myejb/hello");
11
hw.sayHello("Beniao!");
12
}
13
}
程序運(yùn)行結(jié)果如下:

七、開發(fā)總結(jié)
本文里出現(xiàn)了很多大家都不知道具體是什么意思的東西,不過對(duì)于學(xué)過EJB3.0的朋友來說,這已不是什么高深的東西了,但是對(duì)于新手來說還是很迷茫。下面就對(duì)這些東西作個(gè)小小的總結(jié),詳細(xì)我將在下篇文章里介紹。
1. @Remote--遠(yuǎn)程接口
2. @Stateless--無狀態(tài)會(huì)話Bean
3. JNDI
注:原創(chuàng)文章版權(quán)歸作者,歡迎轉(zhuǎn)載,未經(jīng)作者同意必須注明文章出處或在頁(yè)面適當(dāng)位置給出原文連接,謝謝!
文章出處:http://beniao.blogjava.net 作者:Beniao 時(shí)間:2008.07.31