ここでは、J2EEコンテナ向けJ2EE1.4アプリケーションをJava EEコンテナ向けに変更する方法を説明します。
注意
以下のアプリケーションはJava EEコンテナ向けに移植することはできません。
Webサービス(JAX-RPC)
Webサービスクライアント(JAX-RPC)
Webアプリケーション
以下の手順でJava EEコンテナ上で動作可能となります。
プロジェクトのコンテキストメニューからプロパティを選択します。
[ターゲットランタイム]ページで[全てのランタイムを表示]にチェックを入れます。
表示されたランタイムの中からJava EEのランタイムを選択し、[OK]をクリックします。
EJBアプリケーション
CMPを含まないEJBアプリケーションの移行処理
CMPを含まないEJBアプリケーションについては以下の手順でJava EEコンテナ上で動作可能となります。
プロジェクトのコンテキストメニューからプロパティを選択します。
[ターゲットランタイム]ページで[全てのランタイムを表示]にチェックを入れます。
表示されたランタイムの中からJava EEのランタイムを選択し、[OK]をクリックします。
CMP2.0の移行処理
CMP2.0についてJava EEコンテナとJ2EEコンテナでは以下の違いがあります。
項目 | JavaEEコンテナ | J2EEコンテナ |
---|---|---|
ターゲットランタイム | JavaEEコンテナ | J2EEコンテナ |
CMP拡張情報ファイル | sun-cmp-mappings.xml | FJCMP_XXXX.xml |
DB定義情報 | sun-ejb-jar.xml | FJCMP_XXXX.xml |
DBテーブル情報 | XXX.dbschema | なし。 |
このため、CMP2.0をJava EEコンテナで利用するためにはsun-cmp-mappings.xml、sun-ejb-jar.xml、XXX.dbschemaを新規に生成する必要があります。これらのファイルの生成やターゲットランタイムの変更は、CMP2.0 Java EE環境への更新ウィザードから行います。新規ウィザードから[EJB] > [J2EE] > [CMP2.0 Java EE環境への更新]を選択してください。
以下の設定項目を確認、入力してください。
項目 | 説明 |
---|---|
プロジェクト選択 | 移行対象のプロジェクトを選択します。 |
「DBスキーマを利用する」 | DBスキーマ利用の有無を指定します。 |
接続リストボックス | 作成済みのDB接続一覧が表示され、この中から1つ選択します。 |
接続の追加 | 新規DB接続ウィザードを開きます。 |
接続 | 接続リストボックスで選択されたDBに接続します。 |
JNDI名 | JavaEEコンテナで利用するDB接続のためのJNDI名を指定します。 |
情報を設定後、[次へ]をクリックし、以下の項目を設定後、[完了]をクリックしてください。
項目 | 説明 |
---|---|
プロジェクト名 | 選択したプロジェクトの一覧が表示されます。 |
EJB名 | 選択したプロジェクトに含まれるCMPの一覧が表示されます。 |
テーブル名 | CMPに関連付くテーブル情報が表示されます。 |
スキーマ名 | 前ページで接続されたDBの情報から、テーブルの利用するスキーマを選択します。 |
注意
CMP2.0 Java EE環境への更新ウィザードはCMP1.1のマイグレーションには対応していません。
CMP2.0、CMP1.1の混在プロジェクトであった場合はCMP2.0のみ移行処理を行い、CMP1.1については移行処理を行いません。
CMP1.1の移行については"CMP1.1の移行処理"を参照してください。
CMP1.1の移行処理
CMP1.1の移行については、以下の作業を行う必要があります。
FJCMP_XXX.xmlからsun-cmp-mapping.xmlへの情報の移行
CMP1.1のFJCMP_XXX.xmlに記述されている情報をsun-cmp-mapping.xmlへ記述します。
各項目の関連については以下の通りとなります。
sun-cmp-mappings.xml | FJCMP_XXX.xml | |||||
---|---|---|---|---|---|---|
sun-cmp-mappings | ||||||
sun-cmp-mapping+ | ||||||
schema | fujitsu-cmp-definition/schema-name | |||||
entity-mapping+ | ← | fujitsu-cmp-definition | ||||
ejb-name | EJB名(ejb-jar.xml/ejb-name) | |||||
table-name | ← | fujitsu-cmp-definition /table-name | ||||
cmp-field-mapping+ | ← | fujitsu-cmp-definition /field-map | ||||
field-name | ← | fujitsu-cmp-definition /field-map/field-map-entry/field-name | ||||
column-name+ | ← | fujitsu-cmp-definition /field-map/field-map-entry/dbcolumn-name |
その他の詳細な内容についてはAPSマニュアルを参照してください。
sun-ejb-jar.xmlへのJDOQLクエリの記述
SQLクエリの仕様が変更されるため、sun-ejb-jar.xmlにSQLクエリ情報をJDOQL形式にて記述します。
sun-ejb-jar.xmlの<ejb>/<ejb-name>、<ejb>/<cmp>/<one-one-finders>/<finder>
この項目にJDOQLに乗っ取った記載方式で<method-name>、<query-params>、<query-filter>、<query-ordering>を記述します。
finderメソッドの記述サンプルは以下となります。
<ejb> <ejb-name>TestCMP11</ejb-name> <jndi-name>jdbc/ORACLE</jndi-name> <cmp> <one-one-finders> <finder> <method-name>testMethod</method-name> <query-params>int param1</query-params> <query-filter> id < param1</query-filter> </finder> </one-one-finders> </cmp> </ejb> |
詳細な内容についてはAPSマニュアルを参照してください。
DBスキーマファイルの生成
以下のコマンドを利用してDBスキーマファイルを生成します。
<Interstage Studioインストールディレクトリ>\APS\F3FMisjee\bin\capture-schema.bat
コマンドを実行するにあたり以下の情報を指定する必要があります。
必要項目 | 値 |
---|---|
DBユーザ名 | データベース接続ユーザ名 |
DBユーザパスワード | データベースパスワード |
DB接続先URL | JDBC接続先のURL |
JDBCドライバ名 | 利用するJDBCドライバのドライバ名 |
出力先ファイルパス | {ワークスペースディレクトリ}/{プロジェクト}/{ソースディレクトリ}/{sun-cmp-mappings/sun-cmp-mapping/schema}.dbschema |
利用スキーマ名 | fujitsu-cmp-definition/schema-name |
利用テーブル名 | fujitsu-cmp-definition/table-name |
コマンドは以下の形式で実行します。
capture-schema -username {DBユーザ名} -password {DBユーザパスワード} -dburl {DB接続先URL} -driver {JDBCドライバ名} -out {出力ファイルパス} [-schemaname {利用スキーマ名}] [-table {利用テーブル名}]* |
Earアプリケーション
以下の手順でJava EEコンテナ上で動作可能となります。
プロジェクトのコンテキストメニューからプロパティを選択します。
[ターゲットランタイム]ページで[全てのランタイムを表示]にチェックを入れます。
表示されたランタイムの中からJava EEのランタイムを選択し、[OK]をクリックします。