...

Application Migration Tool WebSphere Application Server Built on Rational Software Analyzer technology

by user

on
Category: Documents
112

views

Report

Comments

Transcript

Application Migration Tool WebSphere Application Server Built on Rational Software Analyzer technology
WebSphere Application Server
Application Migration Tool
Built on Rational Software Analyzer technology
Version 1.1.0
April 19, 2010
A combined effort:
IBM Software Group, Application and Integration Middleware Software
IBM Software Group, Rational Software
© Copyright IBM Corp. 2009, 2010
Application Migration Tool ガイド
概要
Java™ Platform, Enterprise Edition (Java EE)のアプリケーションをサードパーティーの
アプリケーション・サーバーから他のプラットフォームに変換するのは、時間と労力を費や
します。変換のプロセスには、Java のソースコード、Java ServerTM Pages (JSP)、デプロイ
メント記述子の修正も含まれます。Application Migration Tool はこれらのマイグレーション
を行う上でのサポートを提供します。
Application Migration Tool は IBM® WebSphere® Application Server Migration Toolkit の
一部として提供されます。このツールキットはユーザーが、あるアプリケーション・サーバ
ーから IBM WebSphere Application Server へのマイグレーションを実行する際のストラテ
ジーと設計をサポートします。
この文書は、インストールや構成、変換といったプロセスでの使用方法についてのガイドで
す。このツールは、アプリケーションの問題の特定、分析、最適化ソリューションを提供す
る IBM Rational® Software Analyzer をベースとしており、Rational Software Analyzer の
スキャン機能を使用して Oracle® WebLogic application server 、もしくは JBoss 特有の構
造を調査します。このツールを使用することで、データのレビューと変換を行うことができ、
アプリケーションを IBM WebSphere Application Server で稼動させることが可能になりま
す。
このツールにより、Oracle WebLogic、もしくはJBossとWebSphere Application Serverに
ホストされているアプリケーションとの違いを確認することができます。そして、これらの
重要な違いのほとんどを自動的に変換することができます。変換することができない場合に
は、ファイルにフラグを表示し、修正が必要な箇所を示します。このマイグレーションツー
ルは以下の項目をサポートします:
•
•
WebSphere Application Server バージョン 7.0 へのアプリケーションの移行
WebLogic の Java、JSP、クラスパス作成物の移行(Java EE 5 とそれ以前のバー
ジョン)
•
•
•
WebLogic デプロイメント記述子(J2EE 1.4 とそれ以前のバージョン)
JBoss の Java、クラスパス作成物の移行(J2EE 1.4 とそれ以前のバージョン)
JBoss デプロイメント記述子(J2EE 1.4 とそれ以前のバージョン)
2
Application Migration Tool ガイド
サポート
Application Migration Toolでは、WebLogicからWebSphere Applcaition Serverにマイグレ
ートするアプリケーションに関する多くの問題をスキャンします。ソースコードを移管する
ために、可能な箇所にはすべてクイック・フィックスを提供します。サポートされるルール
とクイック・フィックスは、このガイドの後半のWebLogic to WebSphere Application Server
rules and quick fixes に記載されています。このツールに関する新しいルールやクイック・
フィックスが利用可能になった場合は、developerWorks® にアップデートされます。
Migration Tool内でクイック・フィックスのプレビューを使用することで、提示されたコー
ドの変更を受け入れるかを判断することができます。同様に、ルールと一緒に提供されるヘ
ルプ情報によってもクイック・フィックスを実行させるかを判断することができます。マイ
グレーションを行う前に、常にソースコードのバックアップを取ってください。
また、スキャンプロセスの間、デザインの変更やコードの書き直しが必要な箇所を特定しま
す。ツールにより、それらの問題箇所を強調しますが、この場合にはクイック・フィックス
は提供しません。
このツールはすべての問題を特定できるわけではありません。このツールがフラグを立てな
いパターンがあった場合、フィードバックをお願いします。Application Migration Tool
forum が利用でき、質問や回答を行うことができます。
(http://www.ibm.com/developerworks/forums/forum.jspa?forumID=2106). (US)
IBM Passport Advantage®にアクセスすると、customer defectを開くことができます。他の
ユーザーは、forumを使用して、問題や提案のレポートや質問することができます。
Rational Software Analyzer 製品に関してさらに詳しい情報が以下の URL に記載されてい
ます。
http://www.ibm.com/developerworks/rational/products/rsar/. (US)
3
Application Migration Tool ガイド
Migration Tool のインストールとアップデート
Application Migration Toolは、インストール済みのEclipse IDE version 3.4.2 もしくはそれ
以降のバージョンのプラグインとして提供されます。アプリケーションの開発とデプロイに
必要なツールがすべて備わった、Rational Application Developer か Rational Application
Developer for Assembly and Deploy が推奨されますが、基本的なEclipse IDEでも機能しま
す。もし、Eclipse IDEがインストールされていなければ、Eclipse 3.4.2 もしくはそれ以降
のバージョン (Java EE 開発者向けのEclipse for Java EE Developerを推奨) をダウンロー
ドし、インストールしてください。http://www.eclipse.org.
Application Migration Toolをインストール、もしくはアップデートするには以下の手順を行
ってください:
1. developerWorksのサイトから最新バージョンのMigration Toolkitをダウンロードしてロ
ーカルに保存してください。
http://www.ibm.com/developerworks/jp/websphere/library/was/was7_migration_toolki
t/
2. Eclipse IDEを起動してください。
3. もし、Rational Application Developer環境、もしくはEclipse for Java EE Developerパ
ッケージを導入していない場合、導入Eclipseのバージョンに応じて前提条件となるプラ
グインをGalileoかGanymedeのサイトからインストールしてください。Rational
Application Developerには必要なプラグインは組み込まれています。
このガイドでは、Eclipse3.5.1 IDE for Java EE Developerにサードパーティーの日本語
化パッケージを適用したソフトウェアを使用しています。
4. Applicaiton Migration Toolkitをインストールもしくはアップデートを行います。
Eclipseのメニューの「ヘルプ」から「新規ソフトウェアのインストール」を選択してく
ださい。インストール画面の「追加」をクリックしてください。
5. サイトの追加ウィンドウでは以下の情報を入力してください。 (図1. ツールのインスト
ーリ)
名前: Application Migration Tool
ロケーション: 「アーカイブ…」ボタンを使用してダウンロードした圧縮ファイルを参照
してください。
4
Application Migration Tool ガイド
図1. ツールのインストール
6. 「OK」をクリックしてください。
7. インストール・ウィンドウで以下のチェックボックスを選択し、「次へ」をクリックして
ください。
a. 「Application Migaration Tool」
b. 「必須ソフトウェアを検索するためにインストール中にすべての更新サイトに接
続する」
8. 「インストール詳細」画面で「完了」をクリックしてください。インストール・ウィンド
ウが現れ、インストールの状況が表示されます。
9. 「ソフトウェア更新」画面が表示されたら、指示通りEclipse環境を再始動してください。
(図2. 再起動ダイアログ)
ツールのインストールは以上で終了です。
5
Application Migration Tool ガイド
図2. 再起動ダイアログ
6
Application Migration Tool ガイド
Eclipse 環境へのアプリケーションのインポート
Application Migration Tool を使用してアプリケーションのコードレビューを行うために、ま
ず Eclipse へのエンタープライズ・アーカイブ (EAR) ファイル、もしくはソースコードを含
んだモジュールのインポートを行います。それぞれの EAR や Web アーカイブ (WAR) ファ
イル、エンタープライズ JavaBeans (EJB) ファイルについてワークスペース上にプロジェ
クトを作成することが推奨されます。EAR ファイルはエンタープライズ・アプリケーショ
ン・プロジェクトとして、EAR 中の WAR ファイルは動的 Web プロジェクトとして、EJB
モジュールは EJB プロジェクトとして作成する必要があります。
プロジェクト作成の際には、以下のガイドを参照してください。
WAR ファイルのための Java ソースコード (例えば、サーブレット、モデル、ユーティリテ
ィクラス) は、プロジェクトの src フォルダにおきます。src フォルダを定義して、プロジェ
クトにあわせて、Java ビルドパスを変更することができます。1 つ以上の WAR から Java
のソースコードが参照される場合には、この後のセクションの共有 Java プロジェクトを参照
してください。
EJB の Java ソースコードは、EJB プロジェクトの ejbModule フォルダに含めることができ
ます。
WAR フ ァ イ ル の コ ン パ イ ル 済 み の Java ア ー カ イ ブ (JAR) ラ イ ブ ラ リ ー は 、
WebContent/WEB-INF/lib フォルダに含めます。
EAR レベルの JAR ライブラリーはエンタープライズ・アプリケーション・プロジェクトの
EarContent フォルダに置くことができます。もし、プロジェクトに APP-INF/lib フォルダ
があれば EarContent フォルダに置くことができますが、
クラスパスルールの検証を実行し、
クラスパスの更新のクイック・フィックスを適正に行う必要があります。
共有 Java プロジェクト
Java のソースコードが Web プロジェクトだけではなく、複数のプロジェクトに渡るケース
があります。
Web プロジェクトからこれらの Java クラスを参照するには 2 つのオプションがあります。
1.
EAR ファイル中に Java プロジェクトの JAR ファイルのコピーを 1 つ作成。それぞ
れの WAR ファイルは JAR ファイルを参照することができます。
2.
それぞれの WAR ファイルに、JAR ファイルのコピーを作成。このアプローチでは、
1 つのみの WAR ファイルであっても JAR ファイルを参照することができます。
別々のプロジェクトに Java のソースファイルを配置するためには、以下のステップを実行し
7
Application Migration Tool ガイド
てください。
1.
新しい Java プロジェクトを作成し、Java のソースを src フォルダに追加する。
2.
EAR プロジェクトのプロパティーダイアログを開く(プロジェクトビューでプロジ
ェクトを右クリックし、プロパティーを選択)
。「Java EE モジュール依存性」を選
択し、プロジェクト名の横の参照したいチェックボックスにチェックする。
3.
JAR ファイルを参照する必要がある Web プロジェクトのプロパティーダイアログを
開く。「Java EE モジュール依存性」を選択し、
「J2EE モジュール」をクリックす
る。参照する JAR ファイルの横のチェックボックスを選択する。
それぞれの WAR ファイルの中に JAR ファイルのコピーを作成する 2 つ目のアプローチでは、
以下のステップが必要となります。
1.
Web プロジェクトのプロパティーダイアログを開きます。プロジェクトを右ク
リックして、
「プロパティー」を選択します。
「Jave EE モジュール依存性」を
選択し、
「Web ライブラリー」タブをクリックします。表には利用可能な Java
プロジェクトが表示されています。
2.
WAR ファイルに追加したいプロジェクトの横のチェックボックスを選択してく
ださい。
Java EE ランタイム・ライブラリーの設定
JavaEE ツールがインストールされた Eclipse を使用する場合には、ターゲット・ランタイ
ム環境の構成をしなければ、Java コンパイラーが Java EE API への参照を解決できません。
Java EE ランタイム・ライブラリーを構成するためには、以下のステップを実行してくださ
い。
1.
Eclipse のウィンドウメニューから「設定」を選択し、設定画面を開きます。
2.
サーバー > ランタイム環境 を選択します。 (図 3. サーバー・ランタイム設定)
8
Application Migration Tool ガイド
図 3. サーバー・ランタイム設定
3.
「追加」をクリックし、
「基本」から「J2EE ランタイム・ライブラリー」を選
択します。
4.
次のウィザードでは、
「参照」をクリックして、ライブラリーのロケーションを
指定します。Java EE API を含む j2ee.jar ファイルがある、WebSphere
Application Server のインストール環境下、dev/javaEE フォルダを指定します。
Web もしくは EJB プロジェクトでこのランタイム・ライブラリーを使用するためには、次に
プロジェクト・プロパティー・ダイアログに行きます。プロジェクトを右クリックし、
「プロパ
ティー」を選択し、
「ターゲット・ランタイム」をクリックします。
9
Application Migration Tool ガイド
図 4. ターゲット・ランタイム
ランタイムの中から、直前に構成した Java EE ランタイム・ライブラリーの横のチェックボ
ックスを選択し、「OK」をクリックします。 (図 4. ターゲット・ランタイム)
10
Application Migration Tool ガイド
分析に向けたツールの構成
分析にあたってルールの設定や分析範囲を構成することができます。分析範囲は、プロジェ
クト、ワーキングセット、ワークスペース全体から選択することが可能です。一度構成する
とその設定を保存し、あとで利用することも可能です。
ツールの構成を行うには、ツールバーから、以下のステップを実行してください。
1.
ツールバーから、「Software Analyzer (
…」を選択します。
)」 > 「Software Analyzer の構成
図 5. 構成ダイアログ
2.
構成リストから「Software Analyzer」を選択し、
「新規」をクリックします。
3.
Software Analyzer Configuration ダ イ ア ロ グ で 分 析 構 成 の 名 前 を
「AppMigration」のように入力します。
4.
ワークスペースのすべてのプロジェクトを分析するには、
「範囲」タブで「ワー
クスペース全体の分析」をチェックします。ワーキングセットや特定のプロジ
ェクトのみを分析する場合には、別のオプションを選択して、分析範囲を限定さ
せることもできます。
5.
「規則」タブで、実行する分析のタイプを選択します。
マ イ グ レ ー シ ョ ン に 関 連 す る ル ー ル セ ッ ト は 、「 WebLogic Application
Migration」と「JBoss Application Migration」の 2 種類があります。ルールセ
ットのルールをすべて適用するには、リストからそのルールセットを選択し、
「設定」をクリックします。
Migration Tool では、以下の分析に基づくルールが定義されています。
• クラスパスレビュー
11
Application Migration Tool ガイド
• Java コードレビュー
• JSP コードレビュー
• XML ファイルレビュー
6.
設定を保存するために、
「適用」をクリックします。
いくつかのルールでは、追加の構成オプションを設定します。構成オプションが
あるルールを選択すると、
ルールのプロパティータブがルールリストの下に表示
されます。例として下に Web service のルールをあげています。
図 6. ルール・プロパティー
12
Application Migration Tool ガイド
分析の実行
分析を実行し、結果を表示させます。
1.
分析を行うために、構成ダイアログの中から「分析」をクリックします。
2.
分析結果は、
「Software Analyzer 分析結果」というビューに表示されます。
ルールの設定によって表示される分析結果は変わります。Migration tool によって分析され
る結果は、以下の 4 つのタブに分類されます。
•
•
•
•
クラスパスレビュー
Java コードレビュー
JSP コードレビュー
XML ファイルレビュー
Java コードレビューのように、いくつかの分析結果ビューでは、1 つのフォーマットだけで
はなく、表形式かツリー構造で結果が表示されます。
それぞれの分析結果を右クリックすると、問題箇所のソースコードの参照やクイック・フィ
ックスの適用を実行することができます。
すべてのルールで実行できるわけではありません、以下のようなアクションが提供されます:
•
結果を表示 - ルールが適用されるソースファイルのエディターを開きます。問題
箇所がハイライトされ、エディターの左側の余白にルール違反を表すアイコンが表示され
ます。
•
クイック・フィックス - 結果リストのアイコンに電球マークが表示されている場
合、そのルールがクイック・フィックスを提供していることを表します。このオプション
を選択すると、Java コードや XML ファイル、JSP、マニフェストファイルを WebSphere
Application Server で稼動するように修正します。
•
Preview: クイック・フィックス – このオプションでは、元のオリジナルコードと、
修正を適用させた後のコードを左右に並べて比較することができます。
•
結果を無視する - このオプションでは、コードを変更せずにリストからルールを
排除します。Java ファイルでは、次回以降の分析の際にルールを適用させないように、
ファイルにコメント・アノテーションを付与します。
•
すべてをクイック・フィックス - このオプションでは、提供されるルールのうち
適用可能なクイック・フィックスをすべて適用します。
•
Quick Fix All Category - このオプションでは、ルールが属するプロバイダータイ
プによって特定されるクイック・フィックスすべてを実行します。Quick Fix All Category
オプションでクイック・フィックスを実行するためには、ルールが「すべてをクイック・
13
Application Migration Tool ガイド
フィックス」オプションを持っている必要があります。例えば、Java ルールでこのオプ
ションを選択した場合、
「すべてをクイック・フィックス」オプションを持っている Java
のルール、すべてに対してクイック・フィックスが実行されます。
それぞれの結果を選択したときに、ヘルプビューに状況に応じたヘルプ画面が表示されます。
最初のパネルは、簡単なディスクリプションです。「Detailed Help」をクリックすると、詳
細な情報が得られます。F1 をクリックするとヘルプビューを開くことができます。
14
Application Migration Tool ガイド
WebLogic から WebSphere Application Server への
マイグレーションルールとクイック・フィックスについて
マイグレーションツールは Java コード、JSP コード、デプロイメント記述子、Web サービスデ
プロイメント記述子を解析の一部として評価を行います。
WebSphere Application Server の変換ルールは、次の 4 種類の解析カテゴリーに分類されます。
Java コードレビューのルール
JSP コードレビューのルール
XML ファイルレビューのルール
クラスパスレビューのルール
Java コードレビューのルールについて
一連の Java コードレビュールール配下で、WebLogic から WebSphere Application Server への
マイグレーションルールは複数のルールを含みます。
コンフィグレーションダイアログまたは結果のビューアーをみるときに F1 キーを押せば詳細な
情報・ヘルプをみることが出来ます。
Java ソースファイルに関す
クイック・ クイック・フィックス(暫定対処法)
るルール
フィックス
の有無
システム・プロパティーレベ 有
このルールでは、システム・プロパティーを使用した com
ルで Commons Logging を
mon loggings 実装クラスの設定を検出する。
使用しない。
クイック・フィックスでは、そのエントリーを除去する。
不正な JPA インポートを使 無
このルールでは、対応する openJPA インポートを持たな
用しない。
い、特定の kodo インポート宣言を検出する。
フラグが表示されるので、確認した後、手動で変更を行う。
対応する openJPA を持たな 有
このルールは、java ファイル中で kodo.* で始まり、対応
い kodo プロパティーを使用
する openJPA を持たない JPA プロパティーを検出する。
しない。
クイック・フィックスでは、そのプロパティーを除去する。
kodo プロパティーに kodo 有
このルールでは、java ファイル中で kodo 固有の値を持つ
固有の値を使用せず、openJ
JPA プロパティーを検出する。
PA の値を使用する
クイック・フィックスでは、その値を openJPA の値に変
更する。
15
Application Migration Tool ガイド
移植不可能な JPA インポー 有
このルールでは、WebLogic 固有の kodo インポート宣言を
トを使用しない。
検出する。
クイック・フィックスでは、openJPA の相当するインポー
ト宣言に置き換える。
JPA の依存性注入の対象と 有
依存性注入の対象として、EntityManager もしくは、
して EntityManager や Entity
EntityManagerFactoryのサブクラスを指定している JPA
ManagerFactory のサブクラ
PersistenceContext もしくは、PersistenceUnitアノテーション
スを使用しない。
を検出する。
クイック・フィックスでは、クラスを標準の JPA オブジェ
クトに変更する。
CMTbean からユーザート 無
このルールでは、CMT(container managed transaction)
ランザクションインターフ
ビーン内の cxt.lookup("javax.transaction.UserTransacti
ェースを使用しない。
on")に対する参照を検知する。ユーザートランザクション
オブジェクトに対する参照は、CMT ビーンからは許可さ
れない。これらの参照に対しては、フラグが立てられ、結
果としてこの JavaEE 違反を除去することが可能になる。
(手動での修正)
WebLogic log4j logging オ 無
このルールでは、WebLogic log4j クラスを検出し、手動で
ブジェクトを使用しない。
マイグレーションを行うためにフラグを表示する。
Logger インスタンスを取得 有
このルールでは、LoggingHelper オブジェクトの使用を検
するための WebLogic loggi
出する。
ngHelper オブジェクトを使
クイック・フィックスでは、このクラスインスタンスを J
用しない。
ava の Logger に変換する。
WebLogic のロギング・オブ 有
このルールでは、WebLogic のロギング・オブジェクトを
ジェクトを使用せずに、Jav
検出する。
a のロギング・オブジェクト
クイック・フィックスでは、Java オブジェクトにコード変
を使用する。
換する。
WebLogic NonCatalogLog 有
このルールでは、NonCatalogLogger の使用を検出する。
ger オブジェクトを使用し
クイック・フィックスでは、JavaLogger オブジェクトに
ない。
変換する。加えて、すべてのロギング・メソッド・コール
を正当なロギングコールに変換する。レベルは、ルール・
プロパティーを使用するユーザーによって制御される。
WebLogic RMI API コール 有
WebLogic 依存の RMI クラスと API 参照を検知する。Jav
を使用しない。
a 提供のクラスを使用するように weblogic rmi から java.
rmi に変更する。
16
Application Migration Tool ガイド
XML 構文解析のための We 有
XML をパースするための、setAttribute や getAttribute
bLogic サーブレット・アト
メソッドの使用を検出する。
リビュートを使用しない。
クイック・フィックスではこのエントリーを除去する。
WebLogic 固有の JDBC プ 無
このルールでは、手動での変更が必要な WebLogic JDBC
ロパティー、もしくは拡張子
プロパティーと拡張子を検出する。
を使用しない。
Initial Context のための W 有
このルールでは、コンテキスト・プロパティーを設定するた
ebLogic 固有 JNDI 環境プロ
めの weblogic.jndi.Environment クラスを検出する。
パティーを使用しない。
クイック・フィックスでは、環境参照で使用されるオブジ
ェクトを、InitialContext オブジェクトを初期化するため
のハッシュ・テーブルに移植する。
WebLogic 固有の JNDI 名を 有
Java ファイルをスキャンし、特定の JNDI 名を検知する。
使用しない
具体的には以下の通り。
・java.naming.factory.initial = weblogic.jndi.WLInitial
ContextFactory
・java.naming.provider.url = t3://localhost:7001
もし見つかった場合には、マイグレーションツールのユー
ザーは JNDI 名をデフォルトの移行可能な JDNI 名に変え
るかどうか選べるようになる。具体的には、次のような変
更。
・Java.naming.factory.initial = com.ibm.websphere.na
ming.WsnInitialContextFactory
・java.naming.provider.url = corbaloc:iiop:localhost:280
9
注意: JNDI 名は、コンテキストが javax.naming.InitialC
ontext(ハッシュテーブル)コンストラクターで初期化さ
れている java ソースファイルと同じ場所になくてはなら
ない
WebLogic(独自)のスター 有
WebLogic スタートアップ/シャットダウンインターフェー
トアップまたはシャットダ
スの実装をしているクラスを探す
ウンクラスを使用しない
該当するクラスを標準の javax.servlet.Servlet.ContextLis
tener インターフェースに変換し、アプリケーションの we
b.xml ファイルに登録を行う
WebLogic StAX オブジェク 無
このルールでは、手動での移行が必要な WebLogic 固有の
トを使用せず、標準の Java
XML Streaming (StAX) オブジェクトを検出する。
API を使用する。
17
Application Migration Tool ガイド
WebLogicのトランザクショ
無
ンマネージャー・オブジェク
このルールでは、TransactionManagerオブジェクトを検出
し、手動での移行のためにフラグを表示させる。
トを使用しない。
WebLogicのトランザクショ
無
ン・オブジェクトを使用しな
このルールでは、Transactionオブジェクトを検出し、手動
での移行のためにフラグを表示させる。
い。
WebLogic
無
このルールでは、TransactionSynchronizationRegistry
TransactionSynchronization
オブジェクトを検出し、手動での移行のためにフラグを表
レジストリー・オブジェクト
示させる。
を使用しない。
WebLogic
無
このルールでは、WeblogicRollbackException オブジェクト
を検出し、手動での移行のためにフラグを表示させる。
WeblogicRollbackException
オブジェクトを使用しない。
WebLogic WLLevel オブジ
有
ェクトを使用しない。
このルールでは、setLevel() メソッドの中でのWLLevel オ
ブジェクトの使用を検出する。
クイック・フィックスでは、WLLevelをIBMのWsLevelに変
換する。このレベルは、ルール・プロパティーを使用する
ユーザーによって管理される。
WebLogic XPath
無
オブジェクトを使用しない。
This rule detects the use of WebLogic 独自の XML XPath
オブジェクトの使用を検出し、手動での移行のためにフラ
グを表示させる。
標準準拠の UserTransactio 有
BMT bean と servlet 中の ctx.lookup"javax.transaction.
n ルックアップ名を使用す
UserTransaction"に対する参照を探す。
る
BMT(Bean Managed Transaction) bean 内で、クイッ
ク・フィックスは、フラグを立てた該当行を ctx.getUserT
ransaction()を使用するように変換する。
サーブレット、Web アプリケーション、クライアントコー
ドの中で、フラグ付けされた行は、JNDI ルックアップつ
まり ctx.lookup"java:comp/UserTransaction"に変換され
る。
18
Application Migration Tool ガイド
例外処理において、該当の例 有
このルールは、エンタープライズビーンの実装およびホー
外条件と例外処理を一致さ
ム・リモートインターフェース内のメソッド定義間の不一
せる
致を捜す。
(WebLogic の場合、非準拠の例外処理組み合わせを認める
が、WebSphere の場合このようなミスマッチは認めない
ため)
(例外処理において)例外条件がない場合、それを追加し、
(EJB bean に対して)余計な例外条件を除去する。(ホ
ーム・リモート)インターフェースは変更しない
kodo プロパティーの代わり 有
このルールでは、Javaファイル中のkodo.*で始まる名前の
に、openJPA プロパティーを
JPAプロパティーを検出する。
使用する。
クイック・フィックスでは、それらのプロパティーを、
openjpa.* に書き換える。
移行可能な JNDI 名を使用 無
コンストラクターの使用を検知する。(具体的には)
する
このルールでは、WebLogic 固有の JNDI 名を使用しない
ことを通知するため、javax.naming.InitialContext(Hash
able) コンストラクターの使用箇所を検知する。
依存性注入のための JPA 要 有
このルールでは、unitName もしくは name 属性を含まな
素に unitName 属性を使用す
い、JPAの PersistenceContext か PersistenceUnit 要素を検
る。
出する。
クイック・フィックスでは、WebLogic の自動デプロイのよ
うな挙動を実現するため、不足している値を追加する。
ノンマッピングな WebLogi 無
このルールでは、import 文、および、コード中の、weblo
c 依存の Apache パッケージ
gic.apache で始まるパッケージ名で参照されているクラ
を使用しない
スのうち、オープンソースの Apache のクラスにマッピン
グできないものにフラグ付けをする。
この場合、別のクラスを参照するように(手動で)コード
を修正する必要がある。詳細はルールヘルプを参照のこと。
webLogic.apache パッケー 有
このルールでは、インポートと weblogic.apache で始まる
ジを使用しない
クラスと org.apache に直接マッピングされるクラスへの
参照に対するコードにフラグを立てる。
このルールでは、import 文、および、コード中の、weblo
gic.apache で始まるパッケージ名で参照されているクラ
スのうち、org.apache パッケージのクラスに直接マッピン
グ可能なものにフラグ付けをする。
このクイック・フィックスは該当コードを org.apache に変
19
Application Migration Tool ガイド
える。
適切な Apache open source jar をダウンロードして、該
当アプリケーションに組み込むこと。
WebLogic が Apache Jakarta のカスタマイズ版をバンド
ルしており、パッケージ名を変更していることに対する対
応。
WebLogicApache 固有のパ 無
このルールでは、weblogic で始まるが、weblogic.apache
ッケージを使用しない
を含んでいないインポートされたクラスにフラグを立て
る。フラグ付けされたサーバー固有の(Weblogic 固有の)
API はマイグレーションの必要有り。
20
Application Migration Tool ガイド
JSP コードレビューのルールについて
JSP コードレビュー配下では、JSP の規則カテゴリーは下記の表に記述されているルールを持っ
ています。F1 キーを押せば詳細な情報・ヘルプをみることが出来ます。
JSP ソースファイルに関す
るルール
クイック・
フィックス クイック・フィックス(暫定対処法)
の有無
JSP フラグメントに関して. 有
このルールは、他の JSP からインクルードされている JS
jsp 拡張子の使用を避ける
P フラグメントを捜す。もし jsp フラグメントファイルが j
spf 拡張子以外の jsp 拡張子を持っている場合には、フラグ
付けされる。
このルールを使うと、リファクターダイアログが起動し、
ファイル名とその(ファイルの)全ての参照を変更するこ
とが可能。
タグ・属性名に関する正しい 有
WAS では JSP taglib 属性は大文字小文字を区別する(ca
ケースを使用する
se sensitive)。このルールでは、大文字小文字区別の規則
に従っていない taglib 属性にフラグ付けをする。
(WAS は XML 仕様に厳密に準拠しているため、タグ・属
性名の大文字小文字を区別するが、WebLogic は区別しな
い。)
クイック・フィックスはタグライブラリーで定義されたケ
ースにマッチするように変更する。
XML ファイルレビューのルールについて
XML ファイルレビューは、デプロイメント記述子、Web サービス、その他の XML に関する問題
を検知するための多くのルールを提供します。
XML ファイルに関するルー
ル
クイック・
フィックス クイック・フィックス(暫定対処法)
の有無
このルールでは、weblogic-ejb-jar.xml ファイルの中の
<local-jndi-name>を検出する。
ローカル JNDI 名を使用し
ない。
有
クイック・フィックスでは、ローカル JNDI が検出された
アプリケーションと関連のあるプロジェクトをすべてスキ
ャンし、ローカル JNDI 名を参照する Java コードが見つ
かった場合には、プロジェクトに<ejb-local-ref>を追加す
21
Application Migration Tool ガイド
る。Web もしくは EJB バインディングも同様に更新され
る。
このルールでは、web.xmlファイルの中のWebLogic servlet
XML 構文解析に関して、
WebLogic servlet フィルター
有
を使用しない。
このルールでは、weblogic-cmp-rdbms-jar.xml ファイル中の
無
ない。
クエリー言語要素、weblogic-ql を手動で移行するために検
出する。
このルールでは、EJB定義のための weblogic-ejb-jar.xmlフ
EJB JNDI名の定義に、WAS
のバインディングを使用す
クイック・フィックスでは、servlet フィルター・エントリ
ーと一緒にフィルターマッピング・エントリーも除去する。
WebLogic 固有のEJBクエリ
ー言語の構成要素を使用し
フィルターの使用を検出する。
有
る。
ァイルの中から、<jndi-name> タグを検出する。
クイック・フィックスでは、検出された値を EJB バインデ
ィングファイルに移行する。
このルールでは、weblogic.xml もしくは
weblogic-ejb-jar.xml ファイルの中から、<ejb-ref-name>
EJB 参照名の定義に、WAS
のバインディングを使用す
有
タグを検出する。
クイック・フィックスでは、EJB 参照の JNDI 名を EJB
る。
バインディングファイルに追加する。
このルールでは、メッセージ駆動Beanの
メッセージ駆動Bean (MDB)
の JNDI名の定義に、WAS
のバインディングを使用す
<destination-jndi-name> を検出する。
有
ィングファイルに設定する。
る。
このルールでは、weblogic.xml もしくは weblogic-ejb-jar.xml
リソース参照名の定義に、
WAS のバインディングを使
クイック・フィックスでは、宛先 JNDI 名を EJB バインデ
有
用する。
ファイルの中の <res-ref-name> 要素を検出する。
クイック・フィックスでは、リソース参照の JNDI 名を
EJB バインディングファイルに追加する。
このルールでは、weblogic-cmp-rdbms-jar.xmlファイルの中
の <weblogic-rdbms-jar> 要素を検出する。
CMPマッピングの定義に、
WASの拡張機能を使用す
有
る。
WebSphere Application Server で CMP を利用するために、
weblogic-cmp-rdbms-jar.xml ファイルから EJB と RDB のマ
ッピング・ファイルを作成する。
コンカレンシー・ストラテジ
ーの定義に関して、WAS の
有
このルールでは、weblogic-ejb-jar.xmlファイルの中の
<concurrency-strategy> 要素を検出する。
22
Application Migration Tool ガイド
拡張機能を使用する。
クイック・フィックスでは、WebLogic の Exclusive、
ReadOnly、Database、Optimistic のコンカレンシー・ストラ
テジーのオプションを EJB 拡張ファイルに移動させる。
このルールでは、weblogic-ejb-jar.xmlファイルの中の
トランザクション・タイムア
ウトに関して、WAS の拡張 有
機能を使用する。
クイック・フィックスでは、タイムアウト値を新たに、EJB
拡張ファイルに定義する。
このルールでは、weblogic.xmlファイルの中の
WAR コンテキスト・ルート
に関して、WAS の拡張機能
<trans-timeout-seconds> 要素を検出する。
有
を使用する。
<context-root> 要素を検出する。
クイック・フィックスでは、コンテキスト・ルートの値を新
たに、Web 拡張ファイルに定義する。
以下は、WebLogic でしか扱えないもしくは部分的にしか扱えない XML ファイル(WebLogic
固有の Deployment Descriptor)
基本的な対処方法は、RAD を利用して対応する WAS 固有 DD を生成するか、WAS への
deploy 時にウィザードを利用して設定する。
XML ファイルに関するルー
ル
webLogic.xml ファイルを使
用しない
webLogic-application.xml
ファイルを使用しない
webLogic-cmp-jar.xml ファ
イルを使用しない
webLogic-cmp-rdbms-jar.x
ml ファイルを使用しない
webLogic-diagnostic.xml フ
ァイルを使用しない
webLogic-ejb-jar.xml ファ
イルを使用しない
webLogic-ra.xml ファイル
を使用しない
クイック・
フィックス クイック・フィックス(暫定対処法)
の有無
無
無
無
無
無
無
無
ルールを選択し、手動変換の方法を表示する為に F1 を押
して、(ヘルプファイルを参照)
ルールを選択し、手動変換の方法を表示する為に F1 を押
して、(ヘルプファイルを参照)
ルールを選択し、手動変換の方法を表示する為に F1 を押
して、(ヘルプファイルを参照)
ルールを選択し、手動変換の方法を表示する為に F1 を押
して、(ヘルプファイルを参照)
ルールを選択し、手動変換の方法を表示する為に F1 を押
して、(ヘルプファイルを参照)
ルールを選択し、手動変換の方法を表示する為に F1 を押
して、(ヘルプファイルを参照)
ルールを選択し、手動変換の方法を表示する為に F1 を押
して、(ヘルプファイルを参照)
WebLogic Web サービスマイグレーションルール
23
Application Migration Tool ガイド
XML ファイルに関するルー
ル
クイック・
フィックス クイック・フィックス(暫定対処法)
の有無
このルールでは、J2EE のデプロイメント記述子ファイル、
webservices.xml にフラグを表示する。
クイック・フィックスでは、IBM WAS ANT スクリプトを
使用する ANT スクリプトを生成する。これにより、デプ
ロイメント記述子から集められた情報を元にした Web サ
WebLogic Web サービスの
デプロイメント記述子を使
ービスの適切な生成物を生成する。デプロイメント記述子
有
の状況によっては、さらに Web サービス用に SEI(Service
Endpoint Interface)を生成し、SEI をプロジェクトクラス
用しない。
パスに追加する。この後、マイグレーションツールのユー
ザーは ANT スクリプトを実行させ、上記で生成した生成
物をプロジェクトにコピーし、おそらくたいていの場合、
さらなるターゲット(例 エンドポイントイネーブラー)の
追加を行う。
クラスパスレビューのルールについて
クラスパスレビューでは、MANIFEST.MF クラスパスが適切にセットされているかを確認します。
クイック・
クラスパスに関するルール
フィックス クイック・フィックス(暫定対処法)
の有無
EAR ファイルの APP-INF フォルダーにあるクラスとライ
アプリケーションクラスパ
スに関して、
MANIFEST.MF を使用す
る
ブラリーを探す。
有
クイック・フィックスでは、モジュールの MANIFEST.MF
ファイルのクラスパスエントリーをアップデートすること
で、影響を受けたモジュールのクラスパスに対してエント
リーを追加する。
24
Application Migration Tool ガイド
トラブル・シューティング
Software Analyzer のオプションが表示されない
Application Migration Tool を イ ン ス ト ー ル す る と 、 Java 、 Debug 、 C++ 、 Plug-in
Development のパースペクティブで新たに Software Analyzer のメニューとツールバーを利
用できるようになります。他のパースペクティブでも、手動でこれらのオプションを利用可
能にすることができます。パースペクティブをカスタマイズするには、以下のステップを実
行してください。
1. RAD (もしくはEclipse) のパースペクティブで「ウィンドウ」> 「パースペクティブの
カスタマイズ」を選択してください。
2. パースペクティブのカスタマイズウィンドウで、「コマンド」タブをクリックし、
「Softtware Analyzer」のチェックボックスを選択します。
3. 「OK」をクリックしてください。
図 7. Software Analyzer のアベイラビリティー
JavaEE コンストラクトや JSP が正しく読み込まれない
プロジェクトファイルを正常に読み込むために、プロジェクト・ファセットを適切に設定す
る必要があります。例として、エンタープライズ bean を含むプロジェクトは、EJB モジュ
25
Application Migration Tool ガイド
ールファセットを設定する必要があります。プロジェクトエクスプローラー上のプロジェク
トを右クリックし、
「プロパティー」を選択して、プロジェクトに設定されているファセット
を確認します。「プロジェクト・ファセット」を選択してください。Web モジュールを含む
プロジェクトは、動的 Web プロジェクトでなければなりません。詳しい情報は、アプリケー
ションのインポートのセクションをご覧ください。
ログとトレース
Application Migration Tool はエラーの情報を 2 つのログファイルに出力します。
•
workspace log (<workspace>/.metadata/.log)
Rational Software Analyzer のログと同様に、重度なエラーログを含みます。
•
Application Migration Tool service log
(<workspace>/.metadata/.plugins/com.ibm.ws.appconversion.base)
これは、トレースを有効にした際の、詳細トレース情報と同様に、すべてのエラー情
報を含みます。
Migration Tool のトレースは、Eclipse コマンドライン、もしくはプロパティー・ファイル
eclipse.ini で、システム変数 appconversion.trace を設定すると有効になります。
•
コマンドラインオプション
‐Eclipse を起動するコマンドラインをシステム変数に追加
eclipse.exe –vmargs –Dappconversion.trace=true
•
eclipse.ini オプション
‐eclipse.exe ファイルと同じディレクトリーにある eclipse.ini ファイルに以下の文を
追加
-Dappconversion.trace=true
レポートと履歴
Software Analyzer 分析結果ビューでは、分析履歴から選択してファイル、もしくはレポー
トを生成するためのボタンが用意されています。Java code review はレポートのサポートが
ある唯一の結果ビューです。
エクスポートした履歴により、生成した結果のロケーションを特定できます。
レポートを生成すると、結果が表示されます。HTML レポートは Web ブラウザに表示され
ます。Web ブラウザは、Eclipse プロパティーの「ウィンドウ」 > 「Web ブラウザ」から
設定できます。
26
Application Migration Tool ガイド
PDF のレポートは、
ご使用のシステム環境のデフォルトの PDF ビューアーで表示されます。
生成されたファイルは、以下のディレクトリーに出力されます。
<workspace>/.metadata/.plugins/com.ibm.xtools.analysis.reporting/reports
Known Issues
マーカーをクリックしてもポップアップウィンドウが表示されない
この問題は、
Java 以外のルールの時に起こります。
図 8 の Error! Reference source not found
では、Java ルールの分析結果が 31 行目の左側にクリックできるマーカーが表示されていま
す。マーカーをクリックするとクイック・フィックスのアクションとヘルプのテキストが表
示されるポップアップが現れます。
図 8. Java クイック・フィックスのマーカー
図 9 では、XML ルールのエラーが 11 行目に表示されています。しかし、マーカーをクリッ
クしてもアクションは無く、ヘルプテキストが表示されるだけです。
図 9. XML クイック・フィックスのマーカー
解決策: Java 以外のファイルでは、Software Analyzer 分析結果ビューからクイック・フィ
27
Application Migration Tool ガイド
ックスを適用する。
manifest ファイル上のマーカーをダブルクリックするとマーカーが除去される
図 10 では、クラスパスの分析結果とファイルの内容が表示されています。1 行目のマーカー
をダブルクリックすると図 11 のようにマーカーが消えてしまいます。
図 10. Manifest ファイルのマーカー
図 11. マーカーをダブルクリック後の Manifest ファイル
解決策: クラスパスのルールに戻ると再度マーカーが表示されるようになります。
同一行で複数のマーカーを選択できない
テキストの同じ行に複数のマーカーが合った場合、異なるマーカーを選択して切り替えるこ
とはできません。順番にーカーを選択するため、1 つ目のマーカーからアクションを実行す
る必要があります。図 12 の 24 行目では、下線が引かれているセグメントが複数あり、これ
は複数のマーカーがあることを意味しています。
28
Application Migration Tool ガイド
図 12. 同一行に複数マーカーがある例
図 13 は、この行に複数のマーカーがあるというメッセージを表示しています。
図 13. Marker hover ヘルプ
図 14 では、マーカーをクリックすると 1 つ目のルールのアクションが表示されることがわか
ります。
図 14. マーカーアクション
左側のマージンにあるマーカーを使用する場合、順番にクイック・フィックスのアクション
を実行する前に、優先度の高いルールから問題解決しなければなりません。
解決策: Software Analyzer 分析結果ビューから、希望のクイック・フィックスを選択する
29
Application Migration Tool ガイド
Copyright and trademarks
© Copyright IBM Corporation 2009, 2010. All Rights Reserved
The information contained in this publication is provided for informational purposes only. While efforts were
made to verify the completeness and accuracy of the information contained in this publication, it is provided AS
IS without warranty of any kind, express or implied. In addition, this information is based on IBM's current
product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for
any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing
contained in this publication is intended to, nor shall have the effect of, creating any warranties or
representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable
license agreement governing the use of IBM software.
References in this publication to IBM products, programs, or services do not imply that they will be available in
all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may
change at any time at IBM's sole discretion based on market opportunities or other factors, and are not intended
to be a commitment to future product or feature availability in any way. Nothing contained in these materials is
intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in
any specific sales, revenue growth, savings or other results.
Performance is based on measurements and projections using standard IBM benchmarks in a controlled
environment. The actual throughput or performance that any user will experience will vary depending upon
many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O
configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that
an individual user will achieve results similar to those stated here.
IBM, the IBM logo, developerWorks, Passport Advantage, Rational, and WebSphere are trademarks of
International Business Machines Corporation in the United States, other countries or both. Java and all
Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other
countries or both.
Other company, product and service names may be trademarks or service marks of others.
30
Fly UP