Eclipse整合JBoss開發(fā)EJB3.0

字號:

EJB3.0中兩個重要的變更分別是:使用了Java5中的程序注釋工具和基于Hibernate的O/R映射模型。我們先來試試吧,感受一下:
    首先創(chuàng)建一個名為HelloEJB的Java 工程,在工程的Library選項中添加外部Jar,將jboss-ejb3x.jar添加到工程中來,單擊完成
    給工程添加一個接口文件 FirstEJB.java,詳細代碼如下:
    package com.ejb;
    public interface FirstEjb {
     public String hello();
    }
    保存。
    再添加一個類文件,F(xiàn)irstBean.java并實現(xiàn)剛創(chuàng)建的接口,具體代碼如下:
    package com.ejb;
    import javax.ejb.*;
    @Stateless
    @Remote({FirstEjb.class})
    public class FirstBean implements FirstEjb {
    public String hello() {
     return "hello";
     }
    }
    在這個文件中,我們導入了javax.ejb.*,并且添加了兩行特殊的注釋,
    @Stateless 表示這是一個無狀態(tài)的會話Bean
    @Remote({FirstEjb.class}) 表示Bean的遠程接口是FirstEJB.class
    一個簡單的EJB我們就創(chuàng)建完成了,下面我們進行打包成Jar文件,
    點擊File-Export,選擇Java -jar file,點擊Next ,只選擇導出Class文件即可,選擇保存Jar文件名本例取名為TestEjb.jar,保存路徑,下面我們創(chuàng)建一個測試工程,創(chuàng)建一個Web工程,名為:MyTestEjb,工程創(chuàng)建完畢后,要將在EJB工程中的接口類復制到此Web工程的src目錄中(包含Java包),這是為了測試方便,在實際使用中無太多意義。然后再創(chuàng)建一個Jsp文件,名為MyJsp.jsp,頁面具體代碼如下:
    <%@ page contentType="text/html; charset=GBK"%>
    <%@ page import="com.ejb.*, javax.naming.*, java.util.Properties"%>
    
    <%
     Hashtable prop=new Hashtable();
     prop.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
     prop.put("java.naming.provider.url", "localhost:1099");
     prop.put("java.naming.factory.url.pkgs", "org.jboss.naming");
     InitialContext ctx;
     try {
     //初始化環(huán)境
     ctx = new InitialContext(prop);
     //根據(jù)JNDI的名字,查找EJB ,此JNDI名字命名格式為:Remote接口名/remote
     FirstEjb helloworld = (FirstEjb) ctx.lookup("FirstBean/remote");
     out.println(helloworld.hello());
     } catch (NamingException e) {
     out.println(e.getMessage());
     }
    %>
    保存 后,即可將此Web應用打包布署
    點擊File-Export 選擇導出WAR文件,保存文件名為:MyTestEjb.war點擊完成。