如何调试 Oracle9 i Forms Developer 可插式 Java 组件?

Oracle9 i Forms Developer 指导文档
版本 1
2003 年 2 月 11 日

目录

  • 简介
  • 安装与调试您的工程
    • 先决条件
    • 第一步 — 准备您的 JDeveloper 工程
    • 第二步 — 创建一个 debug_pjc.html 文件
    • 第三步 — 将 debug_pjc.html 文件添加到您的工程
    • 第四步 — 设置断点
    • 第五步 — 调试您的 Forms
  • 其它信息

简介

可插式 Java 组件 (PJC) 提供了一种强大的机制,可以通过自定义功能来扩展 Forms Java 客户端。然而,编写 PJC 必须使用 Java,而且只使用 print 语句调试这些嵌入到 Forms 运行时中的组件,这个过程需要花费大量的时间。此指导文档教您按照所需步骤设置 Oracle9 i Forms Developer 安装和 Oracle9 i JDeveloper 9.0.2,以调试正在运行的 Forms 应用程序中的 PJC 代码。这些指示也同样适用于 Oracle9 i JDeveloper 9.0.3(虽然屏幕的布局略有不同)。

此指导文档不包含创建 PJC 的基本步骤。有关创建 PJC 的详细信息请参阅:

设置并调试您的 PJC 项目

先决条件

这些指示假定您已经设置并成功运行 Oracle9 i Forms Developer 和 Oracle9 i JDeveloper,即您在 JDeveloper 中已经拥有一个希望进行调试的 PJC 项目,并有一个使用该 PJC 的测试 Form。您用在测试中使用的任何 Forms、菜单和资料库的位置都应该在 FORMS90_PATH 环境变量中定义。

此外,这些指示还假定您正在使用标准的 Oracle9 i Forms Developer OC4J 安装进行开发,并对您的开发计算机上的 8888 端口进行监听。如果情况不是这样,您将必须对下面的指示略作更改,以与您的实际配置保持一致。

第一步 - 准备您的 JDeveloper 工程

如果您创建了一个 PJC,您的工程中就已经包含 f90all.jar 文件,它是一个库文件。然而,如果您已经给 Oracle9iDS 安装加了补丁,您可能会有多个版本的 f90all.jar 文件可用。当通过 JDeveloper 进行调试时,您需要确保 JDeveloper 中使用的库与 Forms 安装使用的库版本相同。确保版本相同的最简单的方法是确保正在使用的 f90all.jar 来自 %ids_home%/forms90/java 目录。

要确保目录正确,请选择项目,然后选择 Project Settings 并在浏览器中选择 Libraries 节点。您应该看到 Selected Libraries 列表中有 Oracle Forms 的库条目。选定此项并单击 Edit 按钮以核实您确实在使用来自 forms90/Java 目录的 f90all.jar 版本。例如:

图片显示 JDeveloper Project Settings 中的编辑库屏幕

图 1 - 编辑 f90all.jar 文件的位置

如果您使用的 f90all.jar 版本不正确,您可能会遇到一个运行时错误 "Client too Old",如果遇到这种情况,请按上面所述方法编辑库位置。

第二步 - 创建一个 debug_pjc.html 文件

设置 PJC 调试的主要工作是创建 HTML 文件,以便通过一种能用于调试的方式启动测试 Form。下面提供了基本的模板。

<HTML>
<!-- FILE: debug_pjc.htm (Oracle Forms) -->
<!-- -->
<!-- This is a HTML file used for debugging Pluggable Java Components -->
<!-- update the serverArgs parameter to include your test module -->
<!-- name and any other required Forms arguments -->
<!-- Amend references of 127.0.0.1:8888 to the correct server and -->
<!-- Port number if you are using a remote server -->
<HEAD><TITLE>Debug My PJC</TITLE></HEAD>
<BODY>
 <APPLET CODEBASE="http://127.0.0.1:8888/forms90/Java"
         CODE="oracle.forms.engine.Main"
         ARCHIVE="f90all.jar"
         WIDTH="1000"
         HEIGHT="700">
   <PARAM NAME="serverURL" VALUE="http://127.0.0.1:8888/forms90/l90servlet">
   <PARAM NAME="serverArgs" VALUE="module=oleform userid=scott/tiger@ora901">
 </APPLET>
</BODY>
</HTML>

图 2 - 模板调试 HTML 文件

注意 <APPLET/> 标签的存档属性只包含 f90all.jar 文件。而不包含带有 PJC 代码的 jar 文件。从您的 JDeveloper 工程中将可获得这些代码。

在此基本的 html 模板中,为了匹配工程,您唯一需要更改的值是 serverArgs 参数的值,需要更新此参数的值来命名一个适当的启动测试 Form;另外,其它的参数也是需要的,例如登录信息。

应该为此 html 文件取一个适当的名称,例如 "debug_pjc.html",并将其保存到 %ids_home%/forms90/Java 目录。

第三步 - 将 debug_pjc.html 文件添加到您的工程

要调试您的 PJC,您将需要运行刚刚创建的 html 文件。选定您的项目并单击 Add to Project 按钮  JDeveloper中 Add to Project 按钮的图片,一个样式固定的窗口图标、带有一个绿色交叉 选定刚刚在 %ids_home%/forms90/Java 目录下创建的 debug_pjc.html 文件。

第四步 - 设置断点

您将马上从 JDeveloper 中运行和调试您的 Form 和 PJC。现在您所须做的是在 PJC 代码中设置适当的断点。对于大部分 PJC,所有的调用都源自 setProperty() 和 getProperty() 方法,因此这适合作为断点。

第五步 - 调试 Form

要调试您的 PJC,请确保 OC4J 引擎已启动,用鼠标右键单击 debug_pjc,html 文件以获得上下文菜单并选择“Debug debug_pjc.html”。

JDeveloper 将启动一个 AppletViewer 进程(此 AppletViewer 窗口的大小由您的 html 文件中的 HEIGHT 和 WIDTH 属性控制),而且 Form 将在 AppletViewer 框架内运行。当 Form 程序执行到 PJC 断点处时,控制程序将返回到 JDeveloper,在这里您可以查看变量,并逐步调试您的自定义代码。

其它信息

  1. 您可以参阅位于 /global/cn/sample_code/products/forms/index.html 的关于此步骤的在线 viewlet - 选择调试 PJC 链接。
  2. 如果从 JDeveloper 进行运行或调试时,您得到的错误信息显示没有找到 Registry.dat,请用您的计算机名或实际 IP 地址来替代 debug_pjc.html 文件中 CODEBASE 的值 (127.0.0.1)。在 Windows NT 上,作为进一步处理,您可能需要删除 CODEBASE 中计算机名前的前缀 http://,例如: CODEBASE="my-dev-machine:8888/forms90/Java"
  3. 如果在运行整个 html 文件时不能找到 Forms 或 pl/sql 库,请确保您的 FORMS90_PATH 不是太长。 在 Window 注册表中定义的 FORMS90_PATH 不能超过 255 个字符。 如果路径太长,它将完全被忽略而不是被截取。
  4. 这里介绍的技术仅用于调试 PJC。当在此模式下运行时, Forms Servlet 的功能受到限制,象环境文件这样的工具不可用,一般会通过 formsweb.cfg 来配置。同样地,您的基本操作系统环境定义了正确的变量,使您的 Forms 无需在 .env 文件中定义其它信息就能运行,这是很重要的。
  5. 使用 AppletViewer 作为容器运行 Forms 应用程序只限于调试用途,它不是一种受支持的客户端部署方法。

 

Left Curve
热门下载
Right Curve