网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  在jboss下开发、部署ejb     
  文章作者:未知  文章来源:水木森林  
  查看:89次  录入:管理员--2007-11-17  
 
  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");
   }
  /**
  * set context for `greet' ejb
  */
   public void setsessioncontext(sessioncontext sc) {
   system.out.println("set context for greet ejb");
   }
  }
  在给出ejb的接口定义并提供了bean类的具体实现后,用下面的命令对这些.java文件进行编译,生成相应的.class文件:
  
  javac *.java -classpath /usr/jb_tom/jboss/lib/ext/jboss-j2ee.jar:.
  部署描述符
  根据ejb规范,要想将ejb成功地部署到ejb服务器上,必须为ejb服务器提供相应的部署描述符。部署描述符对所要部署的ejb进行了说明,包括该ejb的远程描述符、本地描述符和bean类等信息。由于ejb服务器只有在获得这些基本信息后才能正确完成ejb的部署,因此编写ejb描述符是开发ejb时必不可少的一个环节。
  
  对于不同的ejb服务器来说,部署同一ejb时所需的部署描述符可能并不相同。在jboss平台上,任何将要被部署的ejb都必须提供ejb-jar.xml和jboss.xml两个文件,这两个文件均位于jar包中的meta-inf目录下,用于对将要部署的ejb进行简要的说明。
  
  ejb-jar.xml
  
  ejb-jar.xml是ejb规范定义的标准部署描述符,在任何ejb服务器上部署ejb时都需要用到该部署描述符。本例中用到的ejb-jar.xml代码如下所示:
  
  
  
  jboss test application
  test
  
  
  greetejb
  greet.greethome
  greet.greet
  greet.greetbean
  stateless
  bean
  

  

  

  jboss.xml
  虽然ejb-jar.xml对所有的ejb服务器都是通用的,但它并没有为ejb服务器提供将要被部署的ejb的全部信息。为了能够对ejb的部署进行更灵活的控制,大部分ejb服务器都要求ejb开发者同时提供另外一个文件来对将要部署的ejb进行描述,在jboss中该文件为jboss.xml,它也位于jar包中的meta-inf目录中。jboss.xml中可以对ejb对应的jndi名字以及相应的持久性进行说明,在本例中用到的jboss.xml如下所示:
  
  
  
  
  
  greetejb
  greetingejb
  

  false
  

  
  

  部署ejb
  开发ejb的最后一步是将其中所有的类文件和相应的部署描述符压缩成jar包,然后部署到ejb服务器上。在本例中,jar包的生成可以通过下面这条命令来实现:
  jar cf greetejb.jar greet/*.class meta-inf/*.xml
  该命令将greet目录下的.class文件和meta-inf目录下的.xml文件压缩成greetejb.jar文件。如果想知道生成的jar包是否正确地包含了所有的文件,可以用命令:
  jar cvf greetejb.jar
  来查看greetejb.jar中包含的文件。如果得到如下的类似信息,则说明所需的文件都已经被正确地包含在该压缩包中了,信息如下:
  
  0 sun may 24 15:32:10 cst 2002 meta-inf/
  68 sun may 24 15:32:10 cst 2002 meta-inf/manifest.mf
  1007 sun may 24 14:35:46 cst 2002 greet/greetbean.class
  209 sun may 24 14:35:46 cst 2002 greet/greet.class
  251 sun may 24 14:35:46 cst 2002 greet/greethome.class
  493 sun may 24 08:40:00 cst 2002 meta-inf/ejb-jar.xml
  303 sun may 24 08:43:22 cst 2002 meta-inf/jboss.xml
  生成的jar包在jboss上的部署相当简单,只需要将该文件复制到jboss的deploy目录下
 
 
上一篇: 提高ejb性能的十大技巧    下一篇: 用java:comp定位ejb
  相关文档
在java中获取系统属性 11-17
返回中文unicode的byte字符串 11-17
j2ee应用开发中与oracle数据库的连接 11-17
jpa重整orm山河 11-17
java数据流——企业级数据流分析(组图) 11-17
使用技巧:内部类和匿名类优化java代码 11-16
java开发技巧:对jar包进行再次修改 11-16
介绍scjp考试中文大纲 11-17
struts用户和开发指南(前言之一) 11-17
nutch 使用之锋芒初试 11-17
论如何成为有高尚职业操守的提问人? 11-17
java 2 micro edition简介(四) 11-17
关于servlet及jsp中遇到的多线程同步问题 04-22
使用java连接处于proxy(or防火墙)之外的http服务器 11-17
filesystemobject 示例代码 11-16
java线程入门——定义线程中的 run 方法 11-17
j2ee技巧:关于提升jsp应用程序的七大绝招 05-12
用java快速开发linuxgui应用 11-17
java初学者实践教程11-泛型声明 11-17
java gui中关于布局管理器的使用方法介绍 04-02
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息