第 2 部分:生成 COBOL/CICS

发表于:2007-05-24来源:作者:点击数: 标签:COBOL部分本文CICS生成
本文是使用 WebSphere Studio Enterprise Developer V5 的 EGL 和 Struts ? 第 1 部分:生成 Java 一文的续篇。在前一篇文章中,我们描述了 WebSphere Studio Enterprise Developer V5 用来向 WebSphere Application Server V5 部署用企业生成语言(Enterpris
本文是使用 WebSphere Studio Enterprise Developer V5 的 EGL 和 Struts ? 第 1 部分:生成 Java 一文的续篇。在前一篇文章中,我们描述了 WebSphere Studio Enterprise Developer V5 用来向 WebSphere Application Server V5 部署用企业生成语言(Enterprise Generation Language,EGL)编写的应用程序的架构。

© Copyright International Business Machines Corporation 2003. All rights reserved.

引言
本文是 使用 WebSphere Studio Enterprise Developer V5 的 EGL 和 Struts ? 第 1 部分:生成 Java一文的续篇。在前一篇文章中,我们描述了 WebSphere®Studio Enterprise Developer V5 用来部署用 WebSphere Application Server V5 的企业生成语言(Enterprise Generation Language,EGL)编写的应用程序的体系结构。我们使用了 Struts 框架作为模型,并描述了如何生成、测试并部署一个分为三层的应用程序,该应用程序由 Web 接口、WebSphere Application Server 和执行 DB2® 查询来访问数据库服务器程序组成。

在第 1 部分中,我们研究了如何用 EGL 来生成 Java™ 服务器程序。在第 2 部分中,我们将研究如何用 EGL 来生成在 z/OS® 上运行的 COBOL/CICS® 服务器程序,以及如何在 WebSphere Application Server V5 中配置 J2EE Connection Architecture(JCA Connector)。

在开始阅读本文之前,我们希望您能按照第 1 部分的 下载说明把本文要用到的样本程序装入到 WebSphere Studio Enterprise Developer 中。

生成用于 z/OS 的 COBOL
在 z/OS 环境中,您可以使用 CICS 来部署服务器程序(Web 应用程序的第三层)。人们也常常希望这样做,因为在 CICS 中大多数被服务器程序所调用的数据集和旧的代码常常也是位于 z/OS 中。在这种情况下,COBOL 服务器程序的性能将比 Java 服务器程序更好。

对于我们的示例,您必须在 WebSphere Studio Enterprise Developer(以下简称 Enterprise Developer)中执行下列任务以创建并测试 COBOL/CICS 装入模块:

  1. 创建并测试 EGL 程序文件
  2. 创建用于生成 COBOL 代码的构建描述符
  3. 创建 DB2 绑定控制部件
  4. 创建用于 COBOL/CICS 的链接部件
  5. 生成 COBOL/CICS 服务器程序
  6. 更新 Struts Action 类以调用 COBOL

1. 创建并测试 EGL 程序文件
本(系列)文章的 第 1 部分描述了执行这个任务所涉及到的步骤(包括对 Struts 和 EGL 的介绍)。当您完成第 1 部分中的步骤 1.1 至步骤 3.3 后,再继续执行下面的任务。

2. 创建用于生成 COBOL 代码的构建描述符
如同我们在 第 1 部分中生成 Java 服务器程序时所做的那样,我们现在必须创建相似的 EGL 构建描述符来支持 COBOL 的生成。

2.1 创建用于 COBOL 的构建描述符

  1. 使用 Navigator 视图中的 EGL Perspective,双击 TE01ABuild.eglbld
  2. 在 Outline 视图中,用鼠标右键单击 TE01ABuild,然后选择 Add part
  3. 选择 Build Descriptor,并输入 cics-cobol 作为名称。这样 cics-cobol 部件就会被添加到 Outline 视图中,并被打开以供编辑。
  4. 添加如图 1 所示的选项。要查看所有可用于 COBOL/CICS 代码生成的选项,请选择 CICS Target system (All)
  5. 当您完成后,请选择 Show only specified options以将选项列表中的选项减少到只显示刚才输入的那些选项。
  6. Ctrl+S保存您所作的改变。

图 1. 用于 COBOL/CICS 的构建描述符
用于 COBOL/CICS 的构建描述符

指定选项的简要描述:


选项 描述
Bind = coboldb2 DB2 必需的选项。绑定模板标识 z/OS 中用于 DB2 访问的绑定控制部件;您将需要在晚些时候创建这个部件。
cicsEntries = RDO MVSCICS 可选的选项。当您生成 COBOL 程序时,该选项可指定是否要产生 CICS 定义;它将帮助 CICS 专家找出必须将哪些条目添加到 CICS PPT 中。
commentLevel = 1 该选项指定包含在生成的 COBOL 源代码中的 EGL 注释的级别;如果您在故障诊断时需要将 COBOL 源代码与 EGL 源代码对应起来,这很有用。
destHost 运行目标构建服务器的机器的名称;例如 carmvs1.raleigh.ibm.com
destPassword 与 destUserID 对应的密码。
destPort z/OS 构建服务器的端口号;它必须与用来启动 z/OS 构建服务器的作业中指定的端口号相匹配。
destUserID 用于在 z/OS 上进行处理的用户标识。
genDirectory Enterprise Developer 放置生成的输出文件和准备状态文件的文件系统的位置;例如 c:\WSED\workspace\EGLgenout
prep = NO 如果将它的值设置为 YES (缺省值),那么在成功完成生成(返回代码 <= 4)时会自动启动生成的对象的准备;源代码将被发送至构建服务器以构建运行时对象。因为我们没有与大型机连接,所以在我们的示例中指定了 NO 。(如果保留缺省值,所有的步骤都会执行,只是当尝试连接大型机时会出现一条错误消息。)
projectID 将包含生成的代码的 z/OS 分区数据集(partitioned data set,PDS)的高级限定符。Enterprise Developer 将使用这个限定符来定位适当的 z/OS 数据集。
sqlID SQL 语句的生成时验证的过程中用来连接到 DB2 系统(在 z/OS 上)的用户标识。例如 db2admin
sqlPassword 与 sqlID 对应的密码。
System = MVSCICS 生成的源代码的目标系统。当前可用的选项只有 MVSCICS (用于 z/OS)。
targetNLS = ENU 用于运行时输出的目标本地语言代码。至关重要的一点是,您必须安装指定语言的 Enterprise Developer Server,尤其是在那些所用语言不是英语的国家和地区更是如此,因为显示给最终用户的各种消息都将基于这种指定的语言。例如,如果是在巴西,这个参数就应该是 PTB 。如果将它设置为 ENU (缺省值),那么最终用户所看到的消息就将是用美国英语来表示的。

2.2 为 COBOL 的 Java 包装程序创建构建描述符

就像我们在 第 1 部分中为 Java 服务器程序所做的那样,COBOL 服务器程序也将需要一个 Java 包装程序。Java 包装程序是一个类的集合,它充当 servlet(或 Java 程序)和由 EGL 生成的 COBOL 程序之间的接口。因为 Java 包装程序将使用不同的链接规范,所以我们需要为它创建另一个构建描述符。

  1. 使用上述 第 2.1 节中列出的步骤,创建另一个构建描述符并将它命名为 wrapper-cobol
  2. 添加如图 2 所示的选项。

图 2. 用于 COBOL/CICS 的 Java 包装程序
用于 COBOL/CICS 的 Java 包装程序

生成的 Java 代码将被创建在 EGLWeb 项目中的 eglweb.java.cics 包中。这样就能保护为 Java 服务器程序创建的 Java 包装程序,使我们可以不必重新生成代码,而只要改变 Struts Action 类的 import 语句就可以在 Java 或 COBOL 服务器上进行测试。

3. 创建 DB2 绑定控制部件
绑定控制部件提供了一种在绑定控制文件中存储信息的方法,该文件随后指定在准备期创建的 DB2 规划中要包含哪些数据库请求模块(database request module,DBRM)。只有当您要生成在访问 DB2 的 SQL 表的 z/OS 上运行的 COBOL 程序时绑定控制部件才有意义,而我们正是要这样做。这里的绑定控制文件和您从本地 COBOL 程序访问 DB2 时要创建的绑定控制文件一样。在 EGL 的上下文中,绑定控制文件是分布式构建函数的输入,用于为执行准备生成的源代码。

要创建绑定控制部件:

  1. 在 Outline 视图中,用鼠标右键单击 TE01ABuild,然后选择 Add part ...
  2. 输入 coboldb2 作为名称。这样 coboldb2 部件就会被添加到 Outline 视图中,并被打开以供编辑。
  3. 手动输入如图 3 所示的选项。

图 3. DB2 绑定控制部件
DB2 绑定控制部件

4. 创建用于 COBOL/CICS 的链接部件
链接部件定义了生成的 Java 包装程序应该如何调用被调用的 EGL 程序,对本文来说就是使用 CICS。对于生成的 COBOL 程序,在生成时指定的链接选项会在运行时起作用。要创建链接部件:

  1. 在 Outline 视图中,用鼠标右键单击 TE01ABuild,然后选择 Add part_=> Linkage Options
  2. 输入 linkageTE01A-cics
  3. 选择 Finish

我们在示例中使用的选项如图 4 所示。

图 4. 用于 COBOL 生成的链接部件
用于 COBOL 生成的链接部件

指定选项的简要描述:


选项 描述
pgmName = TE01A CallLink 元素指向的程序部件的名称。
type = remoteCall 指出调用使用了 EGL 中间件,它在被传送数据的尾部添加了 12 个字节,使得调用者能从被调用程序那里接收到一个返回值。可能的选项还有 localCallejbCall
conversionTable = CSOE037 用于转换调用的数据的转换表的名称。 CSOE037 是用于英语或葡萄牙语的表,其他语言需要使用不同的表。
location = eis/CICSResourceAdapter 指定如何在运行时确定被调用程序的位置。因为我们使用 CICSJ2C 作为 remoteComType,所以它指的是 ConnectionFactory 对象的 JNDI 名称,而该对象是您在设置 J2EE 服务器时为被调用的 CICS 事务建立的。根据约定,ConnectionFactory 对象的名称以 eis/ 开头。
luwControl = SERVER 指出工作单元是由 caller () 来控制,还是由被调用程序来控制。 SERVER 意味着由被调用程序启动的工作单元独立于任何由调用程序控制的工作单元。
parmForm = COMMDATA 指出调用者会把数据存放在 COMMAREA 中,而不是从外部指向数据。这样就可以不用关心边界对齐而将每个参数值都移至紧接着前一个值的缓冲区。
remoteBind = GENERATION 指出调用所要用到的属性是在生成时设置的。
remoteComType = CICSJ2C 指定所用的通信协议。WebSphere 使用 J2C 连接器,但为了 J2EE 实现,我们必须使用 CICSJ2C 。其他可能的选项有 CICSECIDIRECTTCPIP
remotePgmType = EGL 指定被调用程序是用 Enterprise Developer EGL 语言生成的 COBOL 程序。另一个选项是 NATIVE。

5. 生成 COBOL/CICS 服务器程序
要生成 COBOL 服务器程序:

  1. 在 Navigator 视图中,用鼠标右键单击 TE01A.eglpgm 并选择 Generate EGL With => Target System and Java Wrapper Build Descriptors调用生成向导。
  2. EGL 构建描述符选项必须是:
    • Java 包装程序: wrapper-cobol (EGLWeb/Java Source/TE01ABuild.eglbld)
    • 目标系统: cics-cobol (EGLWeb/Java Source/TE01ABuild.eglbld)
    生成嵌套在该资源中的所有文件的顶层的所有程序部件:
    • EGLWeb/Java Source/eglweb/java/cics 文件夹中会生成用于 COBOL/CICS 的 Java 包装程序(比如 Te01aWrapper.javaTe01w01.java )。这样就能保护用于 Java 服务器的包装程序,因为别的包装程序是存储在不同的文件夹( EGLWeb/Java Source/eglweb/java )中的。而对于测试,您将只需要改变导入的类以使它们指向正确的文件夹就可以了。
    • 将调用生成的 COBOL 程序的 Java 包装程序类是 Te01aWrapper.java 。要在执行 COBOL 调用的方法调用中使用的 callOptions 变量如图 5 和图 6 所示。 Te01aWrapper.java 扩展了由 Enterprise Developer 提供的 CSOServerProgram
    • 对应于 EGL 工作存储的 Java 类是 Te01w01.java ,它将在调用包装程序时被作为一个参数来使用。

图 5. Te01aWrapper 类中的 callOptions 变量
Te01aWrapper 类中的 callOptions 变量

图 6. Te01aWrapper 类中的方法调用
Te01aWrapper 类中的方法调用


如图 7 所示,服务器组件被创建在 C:\WSED\workspace\EGLgenout 目录中。在晚些时候,所有这些组件都必须被提交给 z/OS 以用于 COBOL 服务器程序的准备和编译。

图 7. 用于 COBOL/CICS 的生成的组件
用于 COBOL/CICS 的生成的组件

6. 更新 Struts Action 类以调用 COBOL
eglweb.java.cics 包中生成用于 COBOL 的 Java 包装程序是为了保护 Java 服务器程序的包装程序。要使 InquiryAction 类调用 COBOL 服务器(而不是 Java 服务器),您需要做如图 8 所示的改变。

图 8. 改变 Inquiry Action Java
改变 Inquiry Action Java

我们的通过 JCA 连接器来使用 CICS 的样本应用程序的简化图表如图 9 所示。

图 9. 使用 CICS 作为服务器
把 CICS 用作服务器



clearcase/" target="_blank" >cc">


通过 Java 包装程序调用 COBOL 的体系结构

用于生成 CICS 包装程序代码的 EGL 的当前实现仅支持 CICS ECI 资源适配器,该适配器可访问服务器上的 CICS 事务。为 EGL COBOL 程序生成的 Java 包装程序使用 JCA 连接器来访问 CICS。

CICS 事务处理网关(CICS Transaction Gateway,CTG)是一个关键的 CICS 组件,您可以在应用程序的开发和运行时过程中用它来测试 CICS 调用。CTG 提供本地协议(直接到 CICS)和网络协议(比如 TCP 和 SSL)用于和 CTG 服务器(CTG Server)进行通信,而 CTG 服务器指导对 CICS 服务器的调用。本文假设您已经接触过 CICS 事务处理网关,V4.01 或更高版本。有关 CTG 的进一步的详细信息超出了本文的范畴,但如果您想要了解更多详细信息,可以参考题为 CICS Transaction Gateway V5 - The WebSphere Connector for CICS 的 IBM 红皮书(请参阅 相关信息)。



运行应用程序
至此,您已经创建了所有的 COBOL 服务器代码和 Java 包装程序。现在,您必须把大型机组件提交给大型机以创建可执行文件,而且必须正确配置 WebSphere Application Server 以通过 JCA 连接器(它调用 CICS COBOL 程序)来运行应用程序。

现在,您必须执行下列任务以准备并运行应用程序:

  1. 提交为大型机的准备而生成的 COBOL 程序
  2. 配置 CICS 的 Web 应用程序
  3. 在 WebSphere Application Server 中安装 CICS ECI 资源适配器
  4. 为 WebSphere 测试环境创建资源适配器并配置连接工厂
  5. 测试 COBOL/CICS 事务

1. 提交为大型机的准备而生成的 COBOL 程序
当您生成 COBOL 程序、Java 程序或 Java 包装程序时,EGL 都会产生一个构建规划(除非您将构建描述符中的 buildPlan 选项设置为 NO )。Enterprise Developer 把这个生成的构建规划(在我们的示例中就是 TE01ABuildPlan.xml )用作为运行时准备生成的输出这一步的输入。

因为我们并不期望在生成时连接到大型机,所以我们在 COBOL 生成选项中指定 prep = NO 以阻止构建规划被启动。现在,要调用构建规划,请执行下列步骤(如果您将 prep 选项设置为 YES ,下列步骤就不是必需的):

  1. 打开命令窗口。
  2. 执行下列命令:

java com.ibm.etools.egl.distributedbuild.BuildPlanLauncherc:\WSED\workspace\EGLgenout\TE01ABuildPlan.xml

2. 配置 CICS 的 Web 应用程序
JCA 连接工厂提供了到 CICS 的连接。您必须指定资源适配器在连接到特定的 CICS 实例时所需的全部信息,同时还需指定 JNDI 查找名称,使得组件能通过它使用新的连接工厂实例。有了这个查找名称,组件就能快速地连接到 CICS。然后在运行时,工厂对象就能生成一个连接、定位 CICS 服务器并调用服务器上的 CICS 程序。

当我们定义了链接部件,就要在 CallLink 元素中指定 eis/CICSResourceAdapter 的位置值。因为这个值是一个局部 JNDI 名称,所以我们不得不将它映射为一个全局 JNDI 名称。要绑定 JNDI 名称:

  1. 打开 EGLWeb 项目(在 /WEB-INF Web 内容中)的 web.xml 部署描述符。
  2. 选择 References选项卡(在底部),然后选择 Resources选项卡(在顶部)。
  3. 选择 Add定义一个新的资源引用。
  4. 输入下列值:
    • Resource Environment Reference: eis/CICSResourceAdapter
    • Type:选择 Browse,然后选择 javax.resource.cci.ConnectionFactory
    • JNDI Name:输入任意唯一的名称;在我们的示例中是: eis/CICSERV
  5. 保存部署描述符。结果如图 10 所示。

图 10. JCA 的资源引用
JCA 的资源引用

3. 在 WebSphere Application Server 中安装 CICS ECI 资源适配器
CICS ECI(External Call Interface,外部调用接口)资源适配器可以访问服务器上的 CICS 事务。Enterprise Developer 不会在产品安装过程中自动装入 ECI 资源适配器。因此您需要为每个用户工作空间都执行一次这个活动。

要查看您的 Enterprise Developer 工作空间中是否已经安装了 CICS ECI 资源适配器(如果有必要,您需要在随后导入它):

  1. 从 Business Integration 透视图中选择 J2EE Hierarchy选项卡(如图 11)。
  2. 展开 Connector Modules。如果其中没有列出 ECIResourceAdapter,您将需要导入它:

    图 11. 检查是否导入了 CICS ECI 资源适配器
    检查是否导入了 CICS ECI 资源适配器


    • 从菜单栏中选择 File => Import...。这样就会打开 Import 向导。
    • 选择 RAR file。这样就会打开 Connector Import 向导。
    • 选择 Browse查找资源适配器文件 cicseci.rar 。您可以在 WSED\resource_adapters 中找到 WebSphere Studio 所带的 JCA 资源适配器,其中 WSED 是安装 WebSphere Studio 的目录。
    • 选中 Standalone connector project复选框。
    • 将项目名称指定为 Connector project。
    • 单击 Finish完成导入。
  3. 在 J2EE Hierarchy 视图中展开 Connector Modules查看新的带有导入的资源适配器的 connector project。

4. 为 WebSphere 测试环境创建资源适配器并配置连接工厂
应用程序组件是用连接工厂(而不是直接用资源适配器)来访问连接实例。连接的示例包括数据库连接、JCA、Java 消息服务(Java Message Service)连接和 SAP R/3 连接。连接工厂实际上是一个配置属性列表持有者。除了资源适配器供应商定义的配置属性的任意集之外,还有几个标准配置属性可以应用到连接工厂上。JCA 连接池管理器会在应用程序服务器运行时使用这些标准属性。

在 第 3 节中,我们将资源适配器装入了工作空间中。现在,我们必须要创建资源适配器并配置连接工厂,我们会在运行时执行中用到它们。这一步和访问数据库所需的数据存储配置很相似。(在第 1 部分中, 第 7.1 节中有类似步骤的执行。)

在下面的步骤中,您将把连接工厂添加到您的包含了资源适配器在连接到特定 CICS 实例时所需信息的服务器配置中。您将指定 Java 命名和目录接口(Java Naming and Directory Interface,JNDI)查找名称,使得组件能通过它使用新的连接工厂实例,从而使组件能快速地连接到 CICS。在运行时,工厂对象将使用这一信息来生成连接、定位 CICS 服务器并调用服务器上的 CICS 程序。

要创建资源适配器,打开服务器配置,选择 J2C页面,然后选择 Add,如图 12 所示。

这里,我们假设您已经定义了 WebSphere 服务器和服务器配置。要创建资源适配器,打开服务器配置,选择 J2C页面,然后选择 Add,如图 12 所示。选择 Enter关闭窗口。如果 Add 按钮不是活动的,可能是因为在步骤 3 中没有正确地装入 RAR 文件。

图 12. 安装 CICS ECI 资源适配器
安装 CICS ECI 资源适配器

4.1 定义 JCA 用法的安全

WebSphere Application Server V5 完全支持 Java 认证和授权服务(Java Authentication and Authorization Service,JAAS)体系结构并扩展了访问控制体系结构以支持 J2EE 资源的基于角色的授权。安全性是可选的。要使用 JAAS 认证来约束对事务的访问,您需要把 JAAS 认证条目添加到服务器配置中:

  1. 在服务器配置的 Security 页面上选择 Add定义一个新的 JAAS 认证条目。
  2. 在所显示的域中输入值。任何值对 Alias 名称都是有效的,但 User ID 和 Password 的值需要且必须有效,这样才能运行 CICS 事务。请参阅图 13。

图 13. 定义 JCA 的认证
定义 JCA 的认证

4.2 创建 JCA 连接工厂

现在,我们必须配置 JCA 的连接工厂:

  1. 从服务器配置的 J2C 页面中选择 ECIResourceAdapter
  2. 从 JCA Connection Factories 窗口中选择 Add创建连接工厂(如图 14)。
  3. 输入下列值:
    • Name: CICSERV (CICS 服务器名称)
    • JNDI name: eis/CICSERV (它和 Web 应用程序相匹配)
  4. 为 Component-managed authentication 选择 EGLCICS
  5. 选择 OK

图 14. 连接工厂定义
连接工厂定义

4.3 定义连接工厂的属性

使用 Resource Properties 窗口,通过将配置对话框中每个属性的值改为如下所示的值来定义连接工厂的各属性(如图 15):

  • ServerName: CICSERV (CICS 服务器的名称)
  • ConnectionURL: tcp://carmv1.raleigh.ibm.com (z/OS 机器,在构建描述符的 destHost 中也有定义)
  • Port Number: 22002 (CICS 事务网关的端口)
  • TPNName: TE01 (运行 DB2 规划的 CICS 事务的名称)

图 15. 连接工厂属性
连接工厂属性

5. 测试 COBOL/CICS 事务
在测试之前,您必须完成下列与环境有关的任务,其中大部分是任何运行 CICS 事务的 z/OS 环境的典型任务:

  • 您必须配置并启动 z/OS 构建服务器。
  • 如果您正在使用 Enterprise Developer z/OS IDE 准备 COBOL 代码,您还要配置并启动外部文件系统(foreign file system,FFS)服务器。

    (欲了解有关上述任务的详细信息,请参考标签为“WebSphere Studio Enterprise Developer for z/OS & FFS”(FMID:HEDS500)的安装 CD-ROM 上的“Program Directory for WebSphere Studio Enterprise DeveloperOptions for z/OS”(文档 GI10-3242)。)

  • 您必须安装并配置了 Enterprise Developer Server(5655-I57),因为生成的 COBOL 程序所要使用的模块是由它来提供的。但标准 Enterprise Developer CD 中不包含 Enterprise Developer Server,因此您必须单独地订购它。
  • 和其他 COBOL/CICS 程序一样,此生成的 COBOL 程序的运行时组件必须在 z/OS 中成功地编译、链接编辑并进行编目,同时还必须配置 CICS 事务处理网关并更新 CICS 程序表(如 PPT、PCT 等等)。

在您设置完环境后,就可以进行测试了:

  • 选择 index.jsp
  • 从上下文菜单中选择 Run on Server

您可能遇到的异常错误将涉及到一些 CICS 配置元素。错误消息将提供给您一些信息,但为了能更好地理解,您可能需要查看存储在 z/OS 中的 CICS 日志消息。例如,如果机器无法访问指定的 z/OS IP 地址,您会接收到一条如下所示的消息:


J2CA0056I: The Connection Manager received a fatal connection error from the Resource Adaptor for resource eis/CICSERV. The exception which was received is
[3/12/03 19:17:07:408 EST]7078ea1 SystemErrR com.ibm.vgj.cso.CSOException: class com.ibm.vgj.cso.CSOException,CSO8104E An error occurred during an attempt to communicate with CICS. Exception is CTG9630E: IOException occurred in communication with CICS.

不要感到沮丧,因为像这样的错误一般是由 CTG 或 CICS 配置问题所引起的,所以您不需要对生成的服务器程序组件做任何编码上的改变。

结束语
祝贺您!您没有编写一行 Java 或 COBOL 代码,就实现了一个使用了 STRUTS 的应用程序,并用 JCA Connector 完成了它与 CICS 的连接。您完全可以把这个非常简单的应用程序扩展为一个相当高级的、复杂的应用程序,但它们的编码、测试和调试的过程却是十分相似的。

当开发人员在 EGL 中进行编码时,他们并不需要应付所有的细节问题,因为 EGL 会生成所有的连接器以使用必需的 Java 类,而这些 Java 类会在生成时可用。EGL 为程序员提供了一种简单的方式,使得他们即使不具备实现 J2EE 通常所必需的所有技能,也能够进入复杂的 J2EE 世界。

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)