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

二、建立包和會話Bean類
在上面建立的EJB模塊里新建立一個包,如:com.beniao.dayone,然后建立一個無狀態的會話Bean及一個遠程接口。詳細如下:

例如建立一個Hello的無狀態會話Bean,和一個遠程接口,如下圖示:

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

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

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

現在我們登錄應用服務器,看上面的工作是不是真的成功完成。在服務器控制臺上點擊“Application Server”選項,然后在右邊選擇“JNDI Browsing”,在彈出的窗體里看是不是已經存在了上面所部署的EJB模塊的JNDI,詳細如下圖:

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

3. 編寫測試程序
測試程序很簡單,大家可以直接查看下面的代碼段,這里面的具體原理不是一句兩句話就能夠介紹清楚,所以這里就不作詳細介紹,有興趣的朋友可以聯系我,相互交流和討論這些原理問題。
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
}
程序運行結果如下:

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