Application Migration Tool WebSphere Application Server Built on Rational Software Analyzer technology
by user
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