My FAQ,最新最全的IT技术FAQ
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论
  当前位置: > SUN专区 > Java技术 > J2ME
用 Glider 进行快速 J2EE 应用程序开发:更快、更简单的应用程序开发
作者:佚名 时间:2005-09-10 15:37 出处:互连网 责编:wqh21
              摘要:Glider 是一种 J2EE 平台开发工具包,其中包括一个内建的 EJB 开发容器和 Web 容器。

简介

管理人员和程序员都认为 J2EE 应用程序开发通常是个相当麻烦的过程。J2EE 应用程序开发者通常要在配置 J2EE 技术容器,设置数据库和编辑 XML 文件上花掉大量的时间。这一点在程序开发早期会让对程序员感到特别沮丧,他们本应该集中精力使应用程序更加完美,却常常不得不在服务器和部署问题上消耗精力。Ensemble Systems 提供了一个解决方案:Glider for Sun Java Studio Standard,一种可解决 J2EE 应用程序开发者面临的许多共同问题的产品,能够帮助他们更快更轻松地编写和测试程序。

Glider 对管理人员的益处

Glider for Sun Java Studio Standard 的联合特性使开发者能够快速和有效地开发和测试 Enterprise JavaBeans(EJB)组件,并鼓励开发小组更频繁地试验和测试。Glider 让开发小组在不用应用程序服务器时,可以构建和测试 EJB 组件和 Java Server Pages (JSP)组件。程序员每次运行应用程序时不再需要程序包和配置 J2EE 程序,并可以更快进行编辑-编译-测试循环,因此提高了开发效率。而且,程序员能把精力集中到应用程序的逻辑上,而不是数据库和服务器设置问题上。这些因素提高了质量,鼓舞了员工士气,并缩短了产品上市时间。

Glider 对程序员的益处

Glider for Sun Java Studio Standard 的许多特性使 J2EE 的应用程序开发变得更快捷和更轻松。

  • EJB 开发容器 —— EJB 开发容器提供了模拟 EJB 容器,在其中可以像运行普通的 Java 程序一样运行和调试EJB组件。EJB 组件的调试比用传统方法更快捷更轻松。另外也可以进行 EJB 组件的单元测试(unit-test)。

    您无需将 EJB 架构组件部署到应用程序服务器,就可以运行它们。对于程序员来说,软件包模拟器就是另一个 Java 对象,通过公共 API 就可以访问。在 EJB 组件测试客户端的控制下,可以加载或存储 EJB 架构数据的“快照”,建立新的 EJB 组件架构实例,在应用程序代码执行前或执行期间展示各种其他的配制功能。关于 EJB 容器的详细信息,请见下面。

  • 点击观看全图
    图1: [缩略图-点击观看全图]
    轻松运行 J2EE 应用程序 —— 轻松运行 J2EE 应用程序加快了编辑-编译-测试的循环,而这是编程过程的一部分。程序员不再需要 费力地转换上下文,以便将应用程序打包并部署到 J2EE 应用程序服务器。

  • 测试和调试 JSP 和 Servlets(包含 EJB 组件) —— 使用 Glider 测试和调试包括 EJB 组件的 Servlets 和 JSP 组件时,也能感受到相同的速度和便利。

    使用 EJB 规范容器模拟器的测试客户端能够像 Java 项目或类一样进行调试,因为 EJB Runner 实例(模拟 EJB 容器)是个本地 Java 对象。分步进行 bean 方法调用允许您逐步执行连接代码,直到 bean 实现代码。

  • Live Bean 浏览器 —— Live Bean 浏览器在调试程序时会显示出来,它会显示所有当前的 EJB 组件实例,其位于 EJB 开发容器中,因此在调试时可以“看到”EJB 的规范软件包的内部(见图1)。通过 Live Bean 浏览器可以浏览各种 EJB 关系。

EJB 开发容器如何工作

EJB 规范容器模拟器由 EJB Runner 类实现,在运行或调试应用程序时自动初始化。此外,Glider 生成的测试客户程序包含了所有初始化 EJB 规范容器模拟器时所必须的代码。但是,EJB 规范容器模拟器也能够通过构造 EJB Runner 实例,和调用带有合适 EJB 规范部署描述符的构造函数来直接控制。(ejb-jar.xml).

在构造过程种时,EJB Runner 对象执行以下操作:

  • 读取指定的部署描述符;

  • 生成 glue 代码,将 bean 的 home 接口、remote 接口和 local 接口连接到 bean 实现类;

  • 为每个本地接口创建一个实例,使之能被访问;

  • 以本地 Java Naming and Directory Interface (JNDI) 上下文的实现者的身份注册,这样就能处理 JNDI 的上下文查找。

始终都要进行适当的查错,以确保描述符和程序员的 bean 类的有效性。一旦 EJB Runner 实例被创建,测试客户端代码应能够查询它以得到同一类 bean 的 home 实例。使用 home 的 create()或 find()方法可以获得 bean 实例,之后可以直接调用 bean 的方法。创建的 bean 实例继续存在于 EJB Runner 的 内存中

Container Managed Persistence (CMP) bean find() 方法的实现通过描述符中的 EJB QL 语句自动生成。调用 find 方法会遍历适当的 bean 实例,并返回与查询相匹配的那些实例。

CMP beans 表现出很少或完全没有设置问题。对于标准的部署描述符和 bean 类,EJB 规范容器模拟器可立即工作。对于 bean-managed persistence(BMP), EJB Runner hook 允许数据库通过 SQL 输入文件进行初始化。默认情况下,要用到 Hypersonic SQL Database 驱动 程序,但是也可以使用任意数据库,方法是在测试客户端中用 EJBRunner 的注册适当的 JDBC 驱动程序。

利用 EJB 开发容器工作

这部分提供了一个简单例子,来示范如何使用 Glider 来创建和调试 J2EE 程序。该示例程序的完整的源代码(zip)可从 Ensemble Systems 网站获得。

创建一个 EJB 组件

以下步骤描述了创建一个 EJB 组件的过程。

  1. 创建一个称为 EmployeeBean 的简单 CMP Entity EJB 组件,以字段名作为主键,字段 totalPaid 的类型为 double。添加一个业务方法 getInfo(),字段返回値类型为 String(见代码示例 1)。

    代码示例 1: 一个简单的CMP EJB实体,EmployeeBean
    public abstract class EmployeeBean implements EntityBean
        {
        private EntityContext ctx;
        public abstract String getName();
        public abstract void setName(String newName);
        public abstract double getTotalPaid();
        public abstract void setTotalPaid(double toAmount);
        public void setEntityContext(EntityContext theEntityContext)
        {
        this.ctx = theEntityContext;
        }
        public void unsetEntityContext()
        {
        this.ctx = null;
        }
        public void ejbRemove(){}
        public void ejbActivate(){}
        public void ejbPassivate(){}
        public void ejbLoad(){}
        public void ejbStore(){}
        public String ejbCreate(String name)
        throws CreateException
        {
        setName(name);
        return null;
        }
        public void ejbPostCreate(String name)
        throws CreateException
        {
        }
        public String getInfo()
        {
        return getName() + ", $" + getTotalPaid();
        }
        }
        
  2. 相应生成 home 和接口。

  3. 和正常使用 Sun Java Studio Standard 一样,创建 EJB 组件。

创建测试客户程序

创建一个类来实例化 EJBRunner 类,获得 EJB home 类,然后创建一个 EJB 组件:

    代码示例 2: 实例化 EJBRunner 类的测试客户端
    public class TestClient
        {
        private static File DEPLOYMENT_DIR = new File( "some/dir");
        private static File EJB_DEPLOYMENT_DESC = new File( "ejbjar.xml");
        public static void main(String[] args)
        {
        try
        {
        EJBRunner runner = new EJBRunner(DEPLOYMENT_DIR,
        EJB_DEPLOYMENT_DESC );
        EmployeeHome employeeHome =
        (EmployeeHome) runner.localHomeOf(EmployeeHome.class);
        Employee employee = employeeHome.create("Serge");
        // other details set, but omitted for brevity
        System.out.println("Created new employee:");
        System.out.println(employee.getInfo());
        }
        catch (Throwable t)
        {
        t.printStackTrace();
        }
        }
        }
        

调试 EJB 组件

要调试 EJB 组件:

  1. 在 EJB 组件实现类的 getInfo() 方法中设置断点。
  2. 运行测试客户端。

将构建应用程序,然后断点会在 EJB 组件模型中暂停。注意,不需要打包、部署和配置就能运行这个应用程序。

结束语

Glider for Sun Java Studio Standard 给程序员提供了一套能快速而轻松创建 J2EE 应用程序的工具。特别地,Glider 消除了在整个应用服务器上调试时的服务器负担加重问题。

迄今为止,开发企业级的应用程序,从最早的原型直到应用程序完成并调试完全,都需要每个程序员在整个应用服务器上直接工作。有了 Glider,程序员就可以像调试普通的 Java 程序一样,编写代码,编译和调试 J2EE 应用程序。这使得 EJB 组件开发比传统方法简单得多,同时可以进行单元测试和更快的递进式开发。

关于作者

Ray Blaak,Ensemble 系统公司的 CTO,自 1985 年以来一直编写程序。他作为 Ensemble 系统公司一位高级架构和首席程序员,用到过各种应用程序和技术,从跟踪 J2EE 的工作流程到跟踪 Ada 公司的飞机。最近,他又成为了 Glider J2EE 工具包的架构和首席程序员。

 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有