上一篇文章里详细介绍了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
 * @author Beniao
 4 */
 */
 5 @Remote
@Remote
 6
 public interface HelloRemote
public interface HelloRemote  {
{
 7 void sayHello(String str);
    void sayHello(String str);
 8 }
}
 9 ----------------------------------------------
----------------------------------------------
10
 /** *//**
/** *//**
11 * 无状态会话Bean
 * 无状态会话Bean
12 * @author Beniao
 * @author Beniao
13 */
 */
14 @Stateless
@Stateless
15
 public class HelloBean implements HelloRemote
public class HelloBean implements HelloRemote  {
{
16
 public void sayHello(String str)
    public void sayHello(String str)  {
{
17 
        
18 }
    }
19 }
} 
四、实现远程接口的Bean方法
        从上面代码段可以清晰的看出,HelloBean这个无状态会话Bean实现了远程接口HelloRemote(关于无状态会话Bean及远程接口,这些知识点将在随后的文章里介绍)。那好,下面我们就来写这个Bean的具体实现。代码如下: 
 1
 /** *//**
/** *//**
 2 * 无状态会话Bean
 * 无状态会话Bean
 3 * @author Beniao
 * @author Beniao
 4 */
 */
 5 @Stateless
@Stateless
 6
 public class HelloBean implements HelloRemote
public class HelloBean implements HelloRemote  {
{
 7
 public void sayHello(String str)
    public void sayHello(String str)  {
{
 8 System.out.println("Hello " + str);
        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;
package myapp.dayone;
 2
 3 import javax.naming.Context;
import javax.naming.Context;
 4 import javax.naming.InitialContext;
import javax.naming.InitialContext;
 5 import com.beniao.dayone.*;
import com.beniao.dayone.*;
 6
 7
 public class Main
public class Main  {
{
 8
 public static void main(String[] args) throws Exception
    public static void main(String[] args) throws Exception  {
{
 9 Context ctx = new InitialContext();
       Context ctx = new InitialContext();
10 HelloRemote hw = (HelloRemote)ctx.lookup("myejb/hello");
       HelloRemote hw = (HelloRemote)ctx.lookup("myejb/hello");
11 hw.sayHello("Beniao!");
       hw.sayHello("Beniao!");
12 }
    }
13 }
} 
 
    程序运行结果如下:
                    
七、开发总结
        本文里出现了很多大家都不知道具体是什么意思的东西,不过对于学过EJB3.0的朋友来说,这已不是什么高深的东西了,但是对于新手来说还是很迷茫。下面就对这些东西作个小小的总结,详细我将在下篇文章里介绍。
    1. @Remote--远程接口
    2. @Stateless--无状态会话Bean
    3. JNDI
注:原创文章版权归作者,欢迎转载,未经作者同意必须注明文章出处或在页面适当位置给出原文连接,谢谢!
        文章出处:http://beniao.blogjava.net      作者:Beniao       时间:2008.07.31