< 上一课 | 下一课 >

课程 1.3:创建 Java 方法

课程 1.3 将指导您完成创建 Java™ 方法。

在开始之前,必须完成“课程 1.2:设置 Web 项目以及 Java 接口和实现”。在本课程中,您将完成下列任务:
  1. 首先将创建 Java 方法:现在将创建一个 Java 方法,该 Java 方法将使用 COBOL 导入器在 COBOL 源与 Java 方法中的数据之间映射数据类型。
  2. 通过单击窗口 > 显示视图 > 片段来打开“片段”视图。在“片段”视图中,单击 J2C
  3. 右键单击将 Java 方法添加至 J2C Java bean 并选择插入
  4. 在“新建 Java 方法”页面中,单击添加
  5. Java 方法名称字段中,输入 getCustomerInfo 作为操作的名称。单击下一步
  6. 接下来,将创建输入参数数据映射:在此步骤中,将导入 taderc25.cbl(COBOL)文件,需要此文件来创建应用程序。taderc25.cbl 文件位于 <installdir>\IBM\SDP70Shared\plugins\com.ibm.j2c.cheatsheet.content_7.0.0\Samples\CICS\taderc25 中,其中 <installdir> 是此产品的安装目录。此 COBOL 文件包含在 CICS® 服务器上运行的程序。它包含将通过通信区(COMMAREA)传递给 CICS 服务器的结构的定义。此结构表示从 CICS 应用程序返回的客户记录。必须将文件从文件系统导入工作台之后才能够处理该文件。在“Java 方法”页面的指定输入/输出类型字段中,单击新建
  7. 在“数据导入”页面中,确保选择映射字段是 COBOL_TO_JAVA。单击“COBOL 文件”字段旁边的浏览
  8. 在文件系统中找到 taderc25.cbl 文件,并单击打开
  9. 单击下一步
  10. 在“COBOL 导入器”页面中,选择一种通信数据结构
    1. 选择 Win32 作为平台名称
    2. 选择 ISO-8859-1 作为代码页
    3. 单击查询
    4. 数据结构选择 ICOMMAREA
  11. 单击下一步
  12. 在“保存属性”页面中:
    1. 生成样式选择缺省值
    2. 单击浏览来选择 Web 项目 Taderc25Sample
    3. 包名字段中,输入 sample.cics.data
    4. 类名字段中,缺省值为 ICOMMAREA,将此缺省值替换为 InputComm
  13. 单击完成
  14. 接下来将为输出参数创建多个可能输出:在“Java 方法”页面的指定输入/输出类型字段中,单击“输出类型”区域旁边的新建
  15. 在“数据导入”页面中,确保“选择映射”字段是 COBOL_MPO_TO_JAVA
  16. 单击多个可能输出区域旁边的新建
  17. 单击“COBOL 文件名”字段旁边的浏览,并找到 taderc25.cbl 文件所在的位置。单击打开
  18. 单击下一步
  19. 在“COBOL 导入器”页面中,选择一种通信数据结构
    1. 选择 Win32 作为平台名称
    2. 选择 ISO-8859-1 作为代码页
    3. 单击查询
    4. 对于数据结构,选择 PREFCUSTREGCUSTBADCUST
  20. 单击完成。在“指定数据导入配置属性”页面上,您将看到列示了这三种数据类型。
  21. 单击下一步
  22. 接下来将指定保存属性:在“保存属性”页面中,您将看到为每个客户类型记录设置的缺省值。确保项目名称字段中的内容为 Taderc25Sample。单击浏览并选择 Web 项目 Taderc25Sample
    1. 在“指定保存属性”页面中,突出显示 COBOL MPO 至 Java 保存属性
      • 包名字段中输入 sample.cics.data
      • 类名字段中输入 OutputComm
      • 可以选择覆盖现有类
    2. 展开 COBOL MPO 至 Java 保存属性。应出现三个数据绑定元素。
    3. 突出显示 COBOL 至 Java 保存属性(对于 taderc25.cbl 文件中的“PREFCUST”)
      • 对于生成样式,选择缺省值
      • 包名字段中输入 sample.cics.data
      • 类名字段中输入 PrefCust
      • 可以选择覆盖现有类
    4. 突出显示 COBOL 至 Java 保存属性(对于 taderc25.cbl 文件中的“REGCUST”)
      • 包名字段中输入 sample.cics.data
      • 类名字段中输入 RegCust
      • 可以选择覆盖现有类
    5. 突出显示 COBOL 至 Java 保存属性(对于 taderc25.cbl 文件中的“BADCUST”)
      • 包名字段中输入 sample.cics.data
      • 类名字段中输入 BadCust
      • 可以选择覆盖现有类
  23. 单击完成。展开 OutputComm,您将看到它在输出类型字段中包含 PrefCust、RegCust 和 BadCust。
  24. 在“Java 方法”页面中,单击完成
  25. 在“Java 方法”页面中:
    1. functionName 字段中输入 TADERC25(COBOL 程序标识)。
    2. 选择显示高级
    3. interactionVerb 字段中选择 SYNC_SEND_RECEIVE(1)
    4. replyLength 字段中输入 -1
  26. 单击完成
  27. 现在将添加识别模式标记以生成 Java 输出数据映射文件:因为返回的输出可以是这些数据类型中的任何一种数据类型,所以与某种数据类型相匹配的唯一方法就是在数据流中预定义一些模式。匹配方法将检查识别模式。

    为识别模式添加 doclet 标记

    1. 要为 PrefCust 添加识别模式:
      • 在 Java 编辑器中打开 PrefCust.java 文件。
      • 浏览到 getPcustcode() 方法。完成此任务的最佳方法是打开“大纲”视图,然后向下滚动,直到找到所需要的方法为止。
      • 在方法注释区域,添加标记 @type-descriptor.recognition-desc pattern="PREC";或者通过按 Alt+/ 使用内容辅助并向下浏览列表找到此标记,然后输入“PREC”作为模式。
      • 保存更改,将会重新生成代码 PrefCust.java。
      • 浏览到匹配方法以确保进行了更改:
        /**
        	 * @generated
        	 
        	 */
        	public boolean match(Object obj) {
        		if (obj == null)
        			return (false);
        		if (obj.getClass().isArray()) {
        			byte[] currBytes = buffer_;
        			try {
        				byte[] objByteArray = (byte[]) obj;
        				buffer_ = objByteArray;
        				if (!("PREC".equals(getPcustcode().toString())))
        					return (false);
        			} catch (ClassCastException exc) {
        				return (false);
        			} finally {
        				buffer_ = currBytes;
        			}
        		} else
        			return (false);
        		return (true);
        	}

    2. 要为 RegCust 添加识别模式:
      • 在 Java 编辑器中打开 RegCust.java 文件。
      • 浏览到 getRcustcode() 方法。完成此任务的最佳方法是打开“大纲”视图,然后向下滚动,直到找到所需要的方法为止。
      • 在方法注释区域,添加标记 @type-descriptor.recognition-desc pattern="REGC";或者通过按 Alt+/ 使用内容辅助并向下浏览列表找到此标记,然后输入“REGC”作为模式。
      • 保存更改,将会重新生成代码 RegCust.java。
      • 浏览到匹配方法以确保进行了更改:
        /**
        	 * @generated
        	 
        	 */
        	public boolean match(Object obj) {
        		if (obj == null)
        			return (false);
        		if (obj.getClass().isArray()) {
        			byte[] currBytes = buffer_;
        			try {
        				byte[] objByteArray = (byte[]) obj;
        				buffer_ = objByteArray;
        				if (!("REGC".equals(getRcustcode().toString())))
        					return (false);
        			} catch (ClassCastException exc) {
        				return (false);
        			} finally {
        				buffer_ = currBytes;
        			}
        		} else
        			return (false);
        		return (true);
        	}
    3. 要为 BadCust 添加识别模式:
      • 在 Java 编辑器中打开 BadCust.java 文件。
      • 浏览到 getBcustcode() 方法。完成此任务的最佳方法是打开“大纲”视图,然后向下滚动,直到找到所需要的方法为止。
      • 在方法注释区域,添加标记 @type-descriptor.recognition-desc pattern="BADC";或者通过按 Alt+/ 使用内容辅助并向下浏览列表找到此标记,然后输入“BADC”作为模式。
      • 保存更改,将会重新生成代码 BadCust.java。
      • 浏览到匹配方法以确保进行了更改:
        /**
        	 * @generated
        	 
        	 */
        	public boolean match(Object obj) {
        		if (obj == null)
        			return (false);
        		if (obj.getClass().isArray()) {
        			byte[] currBytes = buffer_;
        			try {
        				byte[] objByteArray = (byte[]) obj;
        				buffer_ = objByteArray;
        				if (!("BADC".equals(getBcustcode().toString())))
        					return (false);
        			} catch (ClassCastException exc) {
        				return (false);
        			} finally {
        				buffer_ = currBytes;
        			}
        		} else
        			return (false);
        		return (true);
        	}