WebSphere Optimized Local Adapters (WebSphere Optimized
Local Adapters) インバウンド Java Bean は、CICS、IMS、バッチ、および UNIX システム・サービスで実行されている外部アプリケーションから呼び出すことができます。このトピックでは、渡されるバイト・エリアの内容を既存の COBOL コピーブックにマップするオブジェクトをセットアップする WebSphere Optimized Local Adapters ターゲット Java Bean の生成手順を説明します。
始める前に
重要: J2C Bean は、WebSphere® Application Servers で公式にサポートされており、テストされています。
ほかの Java™ 環境で使用しても
動作するはずですが、十分にはテストされていません。生成されたコードに問題があり、
そのコードが WebSphere Application Server 環境内などに独立してある状態であれば、サポート対象になります。
このタスクについて
WebSphere Optimized Local Adapter インバウンド Java Bean は、CICS、IMS、バッチ、および UNIX システム・サービスで実行されている外部アプリケーションから呼び出すことができます。同一の Java Bean を作成して、これらの環境のいずれからでも呼び出すことができます。また、 Java Bean を、RMI over IIOP などの標準 Java リモート呼び出しメソッドを使用して呼び出すこともできます。外部アドレス・スペースから呼び出された場合に WAS
z/OS 環境の実行を簡素化する WebSphere Optimized
Local Adapters Java Bean の独自の特徴は、com.ibm.websphere.ola.ExecuteHome ホーム・インターフェースと com.ibm.websphere.ola.Execute リモート・インターフェースの実装であるという点です。これには、入力としてバイト配列を受け取り、その応答としてバイト配列を返す、execute() というメソッドを含める必要があります。
ワークベンチを使用して、WebSphere Optimized
Local Adapters ターゲット Java Bean を生成します。ワークベンチは Java 3.1 スタイルのターゲット Java Bean を生成します。生成されたソースには、Java クラス名の上に、@RemoteHome(com.ibm.websphere.ola.ExecuteHome.class) 注釈が入ります。
また、ワークベンチは @Stateless(mappedName="<Java JNDI name>") 注釈を使用して Java 名を生成します。CICS、IMS、またはバッチ環境の呼び出し側アプリケーションが WebSphere Optimized Local Adapters サービス名として WebSphere Optimized
Local Adapters の Invoke API または Send Request API で渡す必要があるのは、この Java ホーム名です。
ワークベンチを使用して、WebSphere Optimized Local Adapters ターゲット Java Bean と、渡されるバイト配列および返されるバイト配列の処理を支援する helper クラスを生成することもできます。WebSphere Optimized Local Adapters Java Bean の作成プロセス中に、COBOL コピーブック、PL/I 構造、または C 構造を入力として渡すことができます。ワークベンチは、そのコピーブックまたは構造の各種パーツへの単純なアクセスを提供するオブジェクトを展開するためのコードを生成します。
手順
- の順に選択します。
- 「WebSphere Optimized Local Adapter (IBM:2)」をクリックして、「次へ」をクリックします。
- 「コネクターのインポート」ページの「コネクター・プロジェクト」フィールドでデフォルト値「ola」を受け入れ、「ターゲット・サーバー」フィールドで、使用する WebSphere Application Server バージョンを選択して、「次へ」をクリックします。
- 「アダプターのスタイル」ページで、「インバウンド」を選択し、「次へ」をクリックします。
- 「接続プロパティー」ページで、ターゲット Java Bean の JNDI 名を入力します。この名前は、@Stateless(mappedName="#Java
JNDI name>") 注釈で使用されます。「次へ」をクリックします。
- 「J2C Java Bean 出力プロパティー」ページで、Java プロジェクトの名前を入力し、「新規作成」をクリックします。
- 「新規 J2C Java Bean」ページでプロジェクトに対して入力した名前が、「Java プロジェクト」ページの「名前」フィールドに表示されます。
これが正しいことを確認します。プロジェクト名が表示されない場合は、「名前」フィールドにプロジェクト名を入力します。
- 「名前」フィールドに、Java プロジェクトの名前を入力します。デフォルトの「プロジェクト・ロケーション」を変更するには、
「参照」ボタンをクリックして、新規ロケーションを選択します。
- 「ターゲット・ランタイム」フィールドで、デプロイ先の WebSphere Application Server のバージョンを選択します。
この選択では、プロジェクトのクラスパス・エントリーを変更することによって、コンパイルおよびランタイム設定に影響を与えます。
注: 新規 EAR プロジェクト名を指定すると、EAR プロジェクトが、作成されるプロジェクトのバージョンに基づいて、互換性のある最も低い Java EE バージョンでデフォルトのロケーションに作成されます。エンタープライズ・アプリケーションに別のバージョンまたは別のロケーションを指定するには、
「新規エンタープライズ・アプリケーション・プロジェクト」ウィザードを使用します。
- デフォルトの「Java モジュール・バージョン (Java Module version)」を受け入れるか、リストから別のバージョンを選択します。J2C インバウンド・アプリケーションを作成している場合は、Java 3.0 を選択する必要があります。
重要: Java 3.0 を選択すると、Java 3.0 ウィザードはデフォルトでローカル・インターフェースを作成します。リモート・インターフェースを作成するには、@Remote(class=
interface.java) 注釈を J2C Bean に追加して、手動で作成します。
- 「構成」フィールドで、デフォルトの構成を受け入れるか、「変更」をクリックしてプロジェクトのプロジェクト・ファセットを変更します。
- EAR プロジェクトに Java プロジェクトを追加する場合は、
「EAR にプロジェクトを追加」を選択します。
- Java モジュールの追加先の EAR プロジェクトを選択するか、「EAR プロジェクト名」フィールドに新規 EAR プロジェクトの名前を入力し、「次へ」をクリックします。
- 「Java モジュール (Java Module)」ページの「ソース・フォルダー」フィールドで、ソース・フォルダーのデフォルトである ejbModule を受け入れるか、または Java プロジェクト用に異なるソース・フォルダー名を入力して、「次へ」をクリックします。
- 「Java モジュール設定の構成 (Configure Java module settings)」ページで、以下のタスクを実行します。
- エンタープライズ Bean のクライアント・インターフェースのクラスを個別の Java クライアント JAR ファイルに保持する場合は、「クライアント・インターフェースおよびクラスを保持する Java クライアント JAR モジュールを作成 (Create an
Java Client JAR module to hold the client interfaces and classes)」をクリックします。この Java クライアント JAR ファイルは、プロジェクト・ユーティリティー JAR ファイルとしてエンタープライズ・アプリケーションに追加されます。
- 「名前」フィールドで、クライアント JAR モジュールのデフォルトの名前をそのまま受け入れるか、または別の名前を入力します。
- 「クライアント JAR の URI」フィールドで、クライアント JAR ファイルのデフォルト名を受け入れるか、または別の名前を入力します。
- 「終了」をクリックします。
- 「J2C Java Bean 出力プロパティー」ページで、以下を実行します。
- 「Java プロジェクト名」フィールドで、プロジェクト名が正しいことを確認するか、正しいプロジェクト名を入力します。
- 「パッケージ名」フィールドに、パッケージ名を入力します。
- 「ステートレス・セッション Java 名 (Stateless Session Java name)」フィールドに、ステートレス・セッション Java 名を入力します。
「次へ」をクリックします。
- 「Java メソッド」ページで、「追加...」をクリックして Java メソッドを作成します。
- 「Java メソッド」ページで、以下を実行します。
- 「入力タイプ」フィールドで、「参照」をクリックして入力を検索するか、「新規作成」をクリックして新しい入力を作成します。
- 「データのインポート」ページの「マッピングの選択」フィールドで、「COBOL から Java」を選択します。
- 「COBOL ファイル」フィールドで、「参照」をクリックして COBOL ファイルを見つけ、「次へ」をクリックします。
- 「インポーター」ページの「プラットフォーム」フィールドで「z/OS」を選択し、「コード・ページ」フィールドで「IBM-1047」を選択し、「データ構造」フィールドで使用したいデータ構造を選択して、「次へ」をクリックします。
- 「保存するプロパティー」ページで、helper クラスに必要な値が表示されていることを確認し、「終了」をクリックします。
- 「終了」をクリックしてから、もう一度「終了」をクリックします。ターゲット WebSphere Optimized Local
Adapters インバウンド Java セッション Bean が、渡されるバイト配列にアクセスして実装を支援する、関連する helper クラスと共に生成されました。
タスクの結果
サンプル Java クラス
以下は、RAD により生成された WebSphere
Optimized Local Adapter の Java サンプル
CustomerGet です。JNDI 名
CustomerGetDetails で作成され、
CUSTOMER という Level 01 マッピングを持つ COBOL コピーブックから生成された
CUSTOMER という名前の helper クラスを持ちます。
package com.ibm.rad.ola.test;
import javax.annotation.Generated;
import javax.ejb.RemoteHome;
import javax.ejb.Stateless;
import com.ibm.xmlns.prod.websphere.j2ca.sap.sappeaddress1139792376.SapPeAddress;
import com.ibm.xmlns.prod.websphere.j2ca.sap.sapreturn468436650.SapReturn;
@Generated(comments = "This code should not be modified directly with the exception of the business method bodies. To change annotation value use the Annotation View. To regenerate re-run J2C Bean wizard flow. Please save business methods implementations before regenerating.", date = "Tuesday, November 5, 2013 6:55:10 PM EST", value = { "This code is generated by Rational J2EE Connector Tools code generator." })
@Stateless(mappedName = "CustomerGetDetails")
@RemoteHome(com.ibm.websphere.ola.ExecuteHome.class)
public class CustomerGet {
public CustomerGet() {
}
public byte[] execute(byte[] theBytes) {
com.ibm.rad.ola.test.CUSTOMER input = new com.ibm.rad.ola.test.CUSTOMER();
input.setBytes(theBytes);
com.ibm.rad.ola.test.CUSTOMER output = execute(input);
return (output.getBytes());
}
public com.ibm.rad.ola.test.CUSTOMER execute(
com.ibm.rad.ola.test.CUSTOMER input) {
com.ibm.rad.ola.test.CUSTOMER output = new com.ibm.rad.ola.test.CUSTOMER();
// TODO - Need to implement business logic here.
return (output);
}
}
上記の // TODO コメントは、実装コードを追加する必要のある場所です。ワークスペースにより、CUSTOMER クラスのインスタンスを生成してそのインスタンスに入力バイト配列のコンテンツをロードするコードが生成されました。これは、CUSTOMER クラスに関連付けられた getter メソッドを呼び出して、入力バイト配列の一部を抽出することができることを意味します。getter メソッドはコード・ページの変換を行うので、このアプリケーションでコード・ページ変換について考慮する必要はありません。
この Java を呼び出す外部アプリケーションは、WebSphere Optimized Local Adapter サービス名 CustomerGetDetails を指定して、WebSphere Optimized
Local Adapter の Invoke (BBOA1INV) API または Send Request (BBOA1SRQ) API でこの Java を呼び出す必要があります。