練習 1.3:建立 Java 方法

開始之前,您必須先完成練習 1.2:設定 Web 專案、Java 介面及實作

練習 1.2 會引導您逐步執行 Java 方法 getCustomerInfo 的建立程序。在這個練習中,您將執行下列動作:

建立 Java 方法

您現在將建立 Java 方法,以使用 COBOL 匯入器,對映 COBOL 程式碼和 Java 方法資料之間的資料類型。

  1. 在「Java 方法」頁面中,按一下新增
  2. Java 方法名稱欄位中,輸入 getCustomerInfo 做為作業名稱。按下一步

建立輸入參數資料對映

在這個步驟中,您將匯入 taderc25.cbl (COBOL) 檔案, 建立應用程式時需要這個檔案。taderc25.cbl 檔案位於 <RSDP_installdir>\rad\eclipse\plugins\com.ibm.j2c.cheatsheet.content_6.0.0\Samples\CICS\taderc25, 其中 <RSDP_installdir> 是本產品的安裝目錄。此 COBOL 檔案包含執行於 CICS 伺服器上的程式。其中有透過通訊區域 (COMMAREA) 以傳遞至 CICS 伺服器的結構定義。這個結構代表從 CICS 應用程式所傳回的客戶記錄。使用檔案之前, 您必須先將它從檔案系統匯入工作台。

  1. 在「Java 方法」頁面的指定輸入/輸出類型欄位中,按一下新建
  2. 在「資料匯入」頁面中,確定選擇對映欄位是 COBOL_TO_JAVA
  3. 按一下 COBOL 檔名欄位旁的瀏覽
  4. 尋找檔案系統中的 taderc25.cbl 檔案,再按一下開啟
  5. 下一步
  6. 在「COBOL 匯入器」頁面中,選取通訊資料結構。
  7. 在「儲存內容」頁面中,

建立輸出參數的多個可能輸出

  1. 在「Java 方法」頁面的指定輸入/輸出類型中,按一下「輸出類型」區域旁的新建
  2. 在「資料匯入」頁面中,確定選擇對映欄位是 COBOL_MPO_TO_JAVA
  3. 按一下多個可能輸出區域旁的新建
  4. 按一下 COBOL 檔名欄位旁的瀏覽,並尋找 taderc25.cbl 檔案的位置。 按一下開啟
  5. 下一步
  6. 在「COBOL 匯入器」頁面中,選取通訊資料結構。
  7. 在「指定資料匯入配置內容」頁面中,您會看見這三個資料類型已列出。
  8. 下一步

指定儲存內容

  1. 在「儲存內容」頁面中,您會看見每個客戶類型記錄的預設值設定。
  2. 在「指定儲存內容」頁面的「資料連結」區段底下,
  3. 在「COBOL 轉換成 Java 時儲存 "PREFCUST" 的屬性」中,
  4. 在「COBOL 轉換成 Java 時儲存 "REGCUST" 的屬性」中,
  5. 在「COBOL 轉換成 Java 時儲存 "BADCUST" 的屬性」中,
  6. 按一下完成。您會看見 OutputComm 的輸出類型中包含 PrefCust、 RegCust 及 BadCust。
  7. 在「Java 方法」頁面中,按一下完成,以完成此作業。
  8. 在「Java 方法」頁面中, 按一下完成

將識別型樣標示新增到產生 Java 輸出資料對映檔案

因為傳回的輸出可能是其中任何一個資料類型,所以比對資料類型的唯一方式是, 在資料串流中預先定義一些型樣。比對方法可用來檢查識別型樣。

新增 doclet 標示

  1. 如果要新增 PrefCust 的識別型樣,請遵循下列步驟:
    1. 在 Java 編輯器中開啟 PrefCust.java 檔案。
    2. 瀏覽至 getPcustcode() 方法。
    3. 在方法註解區域中,新增 @type-descriptor.recognition-desc pattern="PREC" 標示, 您也可以使用內容輔助,方法是按住 CTRL + 空格鍵,並向下導覽清單,以尋找此標示,然後輸入 "PREC" 做為型樣。
    4. 儲存變更,程式碼 PrefCust.java 會重新產生。
    5. 瀏覽至比對方法,以確定變更存在。
    6. /**
      	 * @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 的識別型樣,請遵循下列步驟:
    1. 在 Java 編輯器中開啟 RegCust.java 檔案。
    2. 瀏覽至 getRcustcode() 方法。
    3. 在方法註解區域中,新增 @type-descriptor.recognition-desc pattern="REGC" 標示, 您也可以使用內容輔助,方法是按住 CTRL + 空格鍵,並向下導覽清單,以尋找此標示,然後輸入 "REGC" 做為型樣。
    4. 儲存變更,程式碼 RegCust.java 會重新產生。
    5. 瀏覽至比對方法,以確定變更存在。
    6. /**
      	 * @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 的識別型樣,請遵循下列步驟:
    1. 在 Java 編輯器中開啟 BadCust.java 檔案。
    2. 瀏覽至 getBcustcode() 方法。
    3. 在方法註解區域中,新增 @type-descriptor.recognition-desc pattern="BADC" 標示, 您也可以使用內容輔助,方法是按住 CTRL + 空格鍵,並向下導覽清單,以尋找此標示,然後輸入 "BADC" 做為型樣。
    4. 儲存變更,程式碼 BadCust.java 會重新產生。
    5. 瀏覽至比對方法,以確定變更存在。
    6. 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);
      	}
      

現在您已準備好開始進行練習 1.4:部署應用程式

讀者意見

(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.