Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

一个Session Bean的示例

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  原著:Dale Green

  理解实例的先决条件

  要理解这些实例,你必须掌握Java编程语言、SQL和关系型数据库的基本概念。特别是以下的内容:

  1、JDBC

  2、Threads

  3、JavaBeans

  4、Security

  下载这些实例

  如果你是在线阅读这份指南,而你希望能够建立并运行这些实例,你需要从这里下载指南的附属软件包:

  http://java.sun.com/j2ee/download.html#tutorial

  在你安装好这个软件包之后,在j2eetutorial/examples/src目录下将可以看到实例的源代码,子目录ejb中是enterprise bean技术的实例,web子目录中是Web技术的实例,而connector子目录中是连接器技术的实例。对于绝大多数的实例,这个软件包也包含了J2EE应用程序的EAR文件,你可以在 j2eetutorial/examples/ears目录下找到这些文件。

  如何建立并运行这些实例

  这份指南的适用平台是J2EE SDK 1.3。要建立、部署并运行这些实例,你需要一份J2EE SDK 1.3和Java 2 Platform, Standard Edition (J2SE) SDK 1.3.1 (早一些的版本被称之为JDK)。J2EE SDK可以从这里下载:

  http://java.sun.com/j2ee/download.html#sdk

  而J2SE 1.3.1可以从这里下载:

  http://java.sun.com/j2se/1.3/

  这些实例的分布使用了ant这个简便的make工具的配置文件来完成。ant是由Apache的Jakarta项目组负责维护的。你可以从这里下载ant:

  http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/bin

  要建立指南的实例,你必须完成以下几步工作:

  1、下载并安装J2SE SDK 1.3.1、J2EE SDK 1.3和ant。

  2、J2SE SDK、J2EE SDK和ant的安装说明书会说明如何设置必需的环境变量。根据表1检查这些环境变量是否已被正确设置。

  表1 设置环境变量

  环境变量:值

  JAVA_HOME:J2SE SDK所安装的位置。

  J2EE_HOME:J2EE SDK所安装的位置。

  ANT_HOME:ant所安装的位置。

  PATH:必须包含J2EE SDK、J2SE SDK和ant的bin目录。

  3、转到j2eetutorial/examples目录下。

  4、执行ant target。例如,要建立所有的实例,执行ant all;要建立Web层实例,执行ant web。建立过程的输出可在j2eetutorial/examples/build目录下找到。

  一个Session Bean的示例

  Session beans是一个强有力的组件,它将你的客户端扩展到远程的服务器--但是它的构建也很简单。在第二章中你已经构建了一个名为ConverterEJB的stateless session bean。这一章中我们将对一个名为CartEJB的stateful session bean的源代码进行研究。

  CartEJB示例

  CartEJB这个session bean表现了在一个在线书店的购物篮。客户端可以向篮中添加一本书、删除一本书或接受购物篮内容。要构造CartEJB,你需要以下代码:

  1、Session bean类(CartBean)

  2、Home接口(CartHome)

  3、Remote接口(Cart)

  所有session bean都需要一个session bean类。所有允许远程访问的enterprise bean都有一个home接口和remote接口。为了适应一个具体的应用程序的需要,一个enterprise bean有时也需要一些辅助类。CartEJB有两个辅助类:BookException和IdVerifier,我们将在辅助类中对其作进一步的讨论。

  在j2eetutorial/examples/src/ejb/cart目录下有示例的源代码。要编译代码,到j2eetutorial/examples目录下输入ant cart。在j2eetutorial/examples/ears目录下有CartApp.ear文件的示例。

  Session Bean类

  这个session bean类名为CartBean。和其它所有的session bean一样,CartBean类也必须满足这些条件:

  1、实现SessionBean接口。

  2、类型为public。

  3、不能定义为abstract或final。

  4、实现一个或多个ejbCreate方法。

  5、实现商业方法。

  6、包含一个无参数的public构造函数。

  7、不能定义finalize方法。

  CartBean类的源代码如下:


import java.util.*; 
import javax.ejb.*; 
public class CartBean implements SessionBean { 
   String customerName; 
   String customerId; 
   Vector contents; 
   public void ejbCreate(String person) throws CreateException { 
  if (person == null) { 
throw new CreateException("Null person not allowed."); 
  } 
  else { 
 customerName = person; 
  } 
  customerId = "0"; 
  contents = new Vector(); 
   } 
   public void ejbCreate(String person, String id) 
 throws CreateException { 
  if (person == null) { 
throw new CreateException("Null person not allowed."); 
  } 
  else { 
 customerName = person; 
  } 
  IdVerifier idChecker = new IdVerifier(); 
  if (idChecker.validate(id)) { 
 customerId = id; 
  } 
  else { 
 throw new CreateException("Invalid id: "+ id); 
  } 
  contents = new Vector(); 
   } 
  public void addBook(String title) { 
  contents.addElement(title); 
   } 
   public void removeBook(String title) throws BookException { 
  boolean result = contents.removeElement(title); 
  if (result == false) { 
 throw new BookException(title + "not in cart."); 
  } 
   } 
   public Vector getContents() { 
  return contents; 
   } 
   public CartBean() {} 
   public void ejbRemove() {} 
   public void ejbActivate() {} 
   public void ejbPassivate() {} 
   public void setSessionContext(SessionContext sc) {} 
} 


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Bean管理持续化实例   下一篇:Jboss下MS SQL Server配置指导

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章