EJB3.0中两个重要的变更分别是:使用了Java5中的程序注释工具和基于Hibernate的O/R映射模型。我们先来试试吧,感受一下:
首先创建一个名为HelloEJB的Java 工程,在工程的Library选项中添加外部Jar,将jboss-ejb3x.jar添加到工程中来,单击完成 给工程添加一个接口文件 FirstEJB.java,详细代码如下: package com.ejb;
public interface FirstEjb { public String hello(); } 保存。 再添加一个类文件,FirstBean.java并实现刚创建的接口,具体代码如下: package com.ejb; import javax.ejb.*; @Stateless @Remote({FirstEjb.class}) public class FirstBean implements FirstEjb {
public String hello() { return "hello"; }
} 在这个文件中,我们导入了javax.ejb.*,并且添加了两行特殊的注释, @Stateless 表示这是一个无状态的会话Bean @Remote({FirstEjb.class}) 表示Bean的远程接口是FirstEJB.class
一个简单的EJB我们就创建完成了,下面我们进行打包成Jar文件, 点击File-Export,选择Java -jar file,点击Next ,只选择导出Class文件即可,选择保存Jar文件名本例取名为TestEjb.jar,保存路径,下面我们创建一个测试工程,创建一个Web工程,名为:MyTestEjb,工程创建完毕后,要将在EJB工程中的接口类复制到此Web工程的src目录中(包含Java包),这是为了测试方便,在实际使用中无太多意义。然后再创建一个Jsp文件,名为MyJsp.jsp,页面具体代码如下: <%@ page contentType="text/html; charset=GBK"%> <%@ page import="com.ejb.*, javax.naming.*, java.util.Properties"%>
<jsp:directive.page import="java.util.Hashtable"/> <% Hashtable<String,String> prop=new Hashtable<String,String>(); 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 { //初始化环境 ctx = new InitialContext(prop); //根据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点击完成。
|