岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> J2EE >> EJB >> Java正文
在JBoss下开发、部署EJB
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-22 21:45:56

  JBoss是一个开放源码的EJB服务器,它与其它服务器整合后可以提供一个完整的J2EE平台。本文介绍如何在Linux环境下安装和配置JBoss,以及如何在JBoss平台上实现EJB的开发和部署。
  
  作为J2EE架构中最重要的构件,EJB是实现服务器端分布式计算的核心。EBJ服务器是EJB的容器,它控制着EJB的运行,并为其提供事务处理、数据库访问、安全控制等一系列系统级的服务。
  
  EJB服务器是J2EE应用服务器的一个重要组成部分。Sun公司的J2EE SDK、IBM公司的WebSphere,以及BEA公司的Weblogic等J2EE实现都内嵌了EJB服务器。虽然JBoss目前还不是一个完整的J2EE应用服务器,但它却是一个完整的EJB服务器,在与Tomcat、Jetty等Web服务器整合后,能够提供一个完整的J2EE平台。
  
  JBoss最大的优点在于它是源代码开放的自由软件,并完全遵循J2EE规范。由于JBoss强大的功能和优异的性能,以及与Linux等GNU项目的结合,目前已经成为J2EE服务器端企业级应用的一股强大力量。
  
  安装JBoss
  
  JBoss的安装和配置相对比较简单。首先到http://www.jboss.org上下载JBoss软件包。目前JBoss的最高版本为3.0,建议下载相对稳定的JBoss2.4.4和Tomcat3.2.3集成的二进制软件包,这样就避免了单个软件包下载后JBoss和Tomcat之间的配置问题。
  
  下载的软件包解压缩到/usr目录后,将生成/usr/JBoss-2.4.4_Tomcat-3.2.3这目录。为方便今后的使用,把该目录更名为/usr/jb_tom。在/usr/jb_tom目录下可以找到/usr/jb_tom/jboss和/usr/jb_tom/tomcat两个子目录,它们分别为JBoss和Tomcat的根目录。
  
  在正式启动JBoss之前,应该先安装好JDK(建议安装JDK 1.3以上的版本),并将环境变量ClassPath设置好。位于/usr/jb_tom/jboss/bin目录下的run_withtomcat.sh文件是JBoss和Tomcat的启动脚本,按照JBoss和Tomcat的默认配置,运行该脚本后将分别在8080和8083端口启动JBoss和Tomcat的HTTP服务。如果一切正常,此时在浏览器中输入http://localhost:8080将出现Tomcat的首页,而输入http://localhost:8080则出现无错误的空白页面。
  创建EJB
  下面以一个简单的无状态会话Bean为例,讲述如何为JBoss平台编写EJB。按照EJB规范,一个EJB中至少应该包含如下三个类的实现:
  
  ◆远程接口
  
  远程接口暴露了整个EJB对外界的接口,在本例中远程接口封装在greet.Greet类中。
  
  ◆本地接口
  
  本地接口描述了创建、管理和销毁EJB时的行为,在本例中本地接口封装在greet.GreetHome类中。
  
  ◆Bean类
  
  Bean类实现了远程接口中定义的所有方法,在本例中Bean类封装在greet.GreatBean类中。
  
  EJB在发布时是以一个JAR包的形式提供的。EJB服务器要求该JAR包中必须包含所有的类文件和相应的部署文件,并且要按照EJB开发时的目录结构进行组织。在我们的例子中,所有的类文件都位于greet目录下,部署文件则位于META-INF目录下,相应的目录结构为:
  
  greet
   +-- Greet.java
   +-- GreetHome.java
   +-- GreetBean.java
  META-INF
   +-- ejb-jar.xml
   +-- jboss.xml
  1.定义远程接口
  
  EJB向外界暴露的接口都在远程接口中进行定义,本例中的EJB只向外界提供了一个接口为calculateMagic,相应的源文件为Greet.java,代码如下:
  
  package greet;
  import javax.ejb.EJBObject;
  import java.rmi.RemoteException;
  /**
   * 这个接口为‘Greet’定义了远程接口
  public interface Greet extends EJBObject
  {
   public double calculateMagic(double seed) throws RemoteException;
  }
  2.定义本地接口
  
  EJB的本地接口对创建、管理和销毁EJB的行为进行了描述,本地接口至少应该提供create()方法,以便对EJB创建时的行为进行相应的描述。例子中本地接口对应的源文件为GreetHome.java,代码如下:
  
  package greet;
  import java.io.Serializable;
  import java.rmi.RemoteException;
  import javax.ejb.CreateException;
  import javax.ejb.EJBHome;
  public interface GreetHome extends EJBHome
  {
   Greet create() throws RemoteException, CreateException;
  }
  3. 实现Bean类
  
  EJB真正完成的工作是在Bean类中实现的,Bean类必须为远程接口中定义的所有方法提供相应的实现。本例中的Bean类对应的源文件为GreetBean.java:
  
  package greet;
  import java.rmi.RemoteException;
  import javax.ejb.SessionBean;
  import javax.ejb.SessionContext;
  public class GreetBean implements SessionBean
  {
   public double calculateMagic(double seed) {
   System.out.println ("Someone called `calculateMagic!'");
  return seed * Math.random();
   }
   public GreetBean() {}
  public void ejbCreate() {
   System.out.println("Create Greet EJB.");
  }
  public void ejbRemove() {
   System.out.println("Remove Greet EJB.");
  }
  public void ejbActivate() {
   System.out.println("Activate Greet EJB");
  }
   public void ejbPassivate() {
   System.out.println("Passivate Greet EJB");
   }

[1] [2] 下一页


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:Admin@Syue.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    传世私服 传奇世界私服 天龙八部私服 bet365 传世私服 天龙八部私服 热血江湖私服 英雄合击传奇私服 热血江湖私服 bet365 bet365