Workshop for WebLogic には、バージョン 8.1 で構築されたアプリケーションのアップグレード プロセスを簡単にするためのツールが用意されています。これらのツールは、バージョン 8.1 のコードを読み込み、対応するバージョン 9.2 の新しいワークスペースを生成するように設計されています。新しく生成されたコードは、8.1 のコードが移行され、アップグレードされたものです。このコードでは明確に予測されるすべての変更が行われています (アプリケーション ロジックは「アップグレード ツール」によって変更されません)。新しいコードでは、新しいアノテーション モデル、異なったプロジェクト モデル、およびその他のコンポーネント向けの変更がサポートされています。
注意 : アップグレードに関する Workshop for WebLogic のドキュメントは、WebLogic Workshop バージョン 8.1 を使用して開発されたアプリケーションを前提に記述されています。これに該当しないアプリケーションを Workshop for WebLogic version 9.2 にアップグレードする場合は、まず WebLogic Workshop IDE バージョン 8.1 SP4、SP5、または SP6 でのビルドと実行ができるようにコードを移行する必要があります。その後で、ここに説明するツールを使用してアップグレードを実行してください。
このトピックでは、バージョン 8.1 からバージョン 9.2 への変更の概要と、アップグレード処理で推奨される高度な手順について説明します。
バージョン 8.1 とバージョン 9.2 の IDE の相違点と各 IDE で構築されたアプリケーションの相違点
バージョン 8.1 のアプリケーションをアップグレードするための準備
WebLogic Workshop バージョン 8.1 で開発を行ってきた開発者がバージョン 9.2 (およびバージョン 9.2 で構築されたアプリケーション) で注目する最も大きな相違点としては、以下の点が挙げられます。
また、「WebLogic Workshop 8.1 ユーザに対する主な相違点」も参照すべき場合があります。
バージョン 8.1 とは異なり、バージョン 9.2 では IDE が Eclipse Platform 上に構築されています。この変更には多くのメリットがあります。たとえば、オープンソース アーキテクチャによる透明性の確保、広く使用されている他の Eclipse ベース IDE と共通の使い慣れた機能、また、Eclipse プラグイン フレームワークに備わった、広く使用されている機能拡張モデルなどを挙げることができます。Workshop for WebLogic では、バージョン 8.1 で構築されたコンポーネントの特定の機能の反復的開発をサポートするために、このオープン フレームワークに数多くの機能が追加されています。
言うまでもなく、バージョン 8.1 の IDE から Eclipse ベースのバージョン 9.2 に移行すると、ユーザ インタフェースは大幅に変わります。次のリストでは、バージョン 8.1 の一般的な機能がバージョン 9.2 でどのように表示されるか (または表示されないか) について説明します。
バージョン 8.1 からバージョン 9.2 へのプロジェクト モデルの変更の多くは、広く使用されている Eclipse と Java の規約にモデルを合わせることを意図しています。他の Eclipse ベースの IDE を使用したことがあるならば、Workshop for WebLogic バージョン 9.2 は親しみやすく感じられるはずです。大幅な変更のリストについては、「WebLogic Workshop 8.1 からバージョン 9.2 へのアップグレード時における変更点」を参照してください。
Workshop for WebLogic バージョン 9.2 では、Java 5 アノテーション モデルがサポートされています。バージョン 8.1 ではソース コードのアノテーションは Javadoc スタイルのコメントに埋め込まれていたのに対し、バージョン 9.2 では対応するアノテーションはコメント ブロックの外側にあります。しかし、理論上はバージョン 8.1 とバージョン 9.2 のアノテーション モデルには相違点よりも多くの類似点があります。つまり、バージョン 9.2 では新しい構文を使用するアノテーションが使用されていますが、それらはバージョン 8.1 のほとんどのアノテーションに対応しています。バージョン 8.1 と同様に、バージョン 9.2 の IDE でもエディタ (アノテーション ビュー) が提供されています。それを使用して、アノテーションの属性値を表示および編集できます。変更の詳細については、「アノテーションのアップグレード」を参照してください。
これは、Web サービス、EJB、コントロールなどのコンポーネント タイプに固有の変更のことです。このような変更は主にソース コードに対して行われます。変更の概要リストは、「WebLogic Workshop 8.1 からバージョン 9.2 へのアップグレード時における変更点」に記載されています。または、このトピックの下部にある「関連トピック」に表示されている個々の技術向けのトピックを参照してください。
以下に示す手順は、WebLogic Workshop を使用して開発したアプリケーションを前提としています。この IDE を使用せずに開発したコードを Workshop for WebLogic のアップグレード ツールでアップグレードする場合は、まず、WebLogic Workshop IDE でのビルドと実行ができるようにコードを移行する必要があります。
ドメインのアップグレードと WebLogic Workshop アプリケーションのアップグレードは別のプロセスですが、相互に関連しています。WebLogic Workshop バージョン 8.1 ドメインのアップグレードに関する詳細については、「8.1 ドメインのアップグレードは WebLogic Workshop バージョン 9.2 内で実行できる」を参照してください。
推奨されているアップグレード前の変更のリストについては、「バージョン 8.1 のアプリケーションをアップグレードするための準備」を参照してください。
「WebLogic Workshop 8.1 からバージョン 9.2 へのアップグレード時における変更点」も参照してください。アップグレード関連の問題が示されており、詳細な情報へのリンクも記載されています。
「[インポート] ウィザードを使用してバージョン 8.1 のアプリケーションをアップグレードするには」では、このツールの使い方について説明されています。
「upgradeStarter コマンド」または 「upgrade Ant タスク」を使用して、ウィザードのアップグレード作業を実行することもできます。
アプリケーションが複雑な場合は、バージョン 8.1 からバージョン 9.2 へのアップグレード プロセスが複数の段階に渡ることがあります。アップグレード プロセスの主要な部分は、IDE によって提供される「アップグレード ツール」によって実行されますが、バージョン 8.1 のアプリケーションに対して準備作業を行うことでウィザードの最終結果がはるかに処理しやすく、実行しやすいものになります。
ここで提供されているアップグレードに関するドキュメント全体に目を通してください。記述の多くで、アップグレードされたコードが実行しやすいものになるようにバージョン 8.1 のアプリケーションを編集する方法が推奨されています。
Workshop for WebLogic には、アップグレード プロセスのほとんどを自動化する 3 種類のツールが付属しています。各ツールは本質的に同じものであり、アップグレードするアプリケーションおよびパラメータを指定できます。[インポート] ウィザードは IDE のユーザ インタフェースとして使用できます。「upgradeStarter コマンド」はコマンドラインから使用するためのオプションを提供します。「upgrade Ant タスク」は Ant から使用するためのオプションを提供します。
注意 : バージョン 9.2 の IDE で個々のファイルをアップグレードすることもできます。アップグレードするには、ファイルを右クリックして [ソース ファイルのアップグレード] をクリックします。エラー処理とメッセージの詳細度に関するオプションについては、「バージョン 8.1 のアプリケーションをインポートしアップグレードするには」を参照してください。
アップグレード ツールによって実行される (または実行されない) アクションについて、以下に簡単に説明します。
アップグレードに [インポート] ウィザード、コマンドライン、または Ant タスクのいずれを使用しても、アップグレードにおける変更、エラー、および警告に関するログが生成されます。[インポート] ウィザードを使用する場合には、プロセスを完了する前に確認できるダイアログにもこのログが表示されます。
各ファイルのノードを展開すると、そのファイルに関連付けられたアップグレード メッセージを表示できます。以下に、ファイル名の横に示される記号について説明します。
情報メッセージ
警告メッセージ
エラー メッセージ
アップグレード ツールによって、アップグレード メッセージを格納するログ ファイルが生成されます。このファイルは、ツールの完了後に次の場所で参照できます。
UPGRADE_WORKSPACE_HOME\.metadata\upgrade.log
ファイル内のログ メッセージは、次のような形式になっています。
!SUBENTRY 1 com.bea.wlw.upgrade severity_level date time
!MESSAGE Upgrade-related message.
severity_level は、2 つの数字で表示されますが、それらは同じ意味です。date エントリおよび time エントリは、アップグレードが試行された時刻を示します。upgrade-related message は、実行された内容、警告の対象、または発生したエラーについて説明します。以下は、2 つのログ エントリの例を示す抜粋です。
!SUBENTRY 1 com.bea.wlw.upgrade 2 2 2006-02-27 17:17:53.687 !MESSAGE The 9.2 control context only supports a subset of the 8.1 control context APIs. Please see the Workshop for WebLogic upgrade documentation for more information. !SUBENTRY 1 com.bea.wlw.upgrade 1 1 2006-02-27 17:17:53.687 !MESSAGE The import "com.bea.control.JwsContext" needs to be updated.
以下では、アップグレード後に発生するおそれのある問題について説明しますが、これらの問題は特定のコンポーネント タイプや技術に関連付けられたものではありません。特定の技術に関連付けられたアップグレード関連の問題については、「関連トピック」に表示されているトピックを参照してください。
通常は、プリコンパイルされたライブラリをバージョン 9.2 の環境で使用するために再コンパイルする必要がある場合には、警告メッセージが発生します。ただし、ライブラリを再コンパイルする必要がある場合でもメッセージが発生しないことがあります。プロジェクトでこの原因以外に説明できないコンパイル エラーが発生した場合には、これらのライブラリを再コンパイルすることを検討してください。
バージョン 8.1 とは異なり、バージョン 9.2 では、JAR がアプリケーション ライブラリとして使用されている場合、JAR ファイルのマニフェストでは行の長さが制限されています。制限を超えている行のある JAR がアップグレードされたアプリケーションに含まれていると、ビルド時にエラーが発生します。この変更に対応するには、行のサイズを小さくするか、または JAR からマニフェストを削除します。
内部 API の使用はサポートされておらず、バージョン 9.2 のクラスパスには weblogic.jar は含まれません (含むことができません)。weblogic.jar 内にあったパブリック API は wls-api.jar に移動されました。クラスパスに weblogic.jar がないことによるコードの破綻を回避するには、パブリック API を使用するようにコードを書き換えます。
サードパーティの API を使用するコードも、バージョン 9.2 へのアップグレードではサポートされていません。
Java 5 の新しい言語機能と (Beehive タグ ライブラリによって使用される) JSP 2.0 式言語により、場合によっては、アップグレードされたコードの一部に変更が必要になることがあります。
たとえば、バージョン 8.1 において予約語ではなかった語が、新機能のために新たに予約語として扱われるようになりました。Workshop for WebLogic のアップグレード ツールではこれらの語の使用はアップグレードされません。そのため、それらの語を使用するコードは新しい言語機能に対応するように書き換えられるまでコンパイルされません。
特に Java 5 には enum
キーワードが追加されています。詳細については、Sun の Web サイトにある「Enums」を参照してください。
JSP 2.0 の予約語は、「予約語は識別子として使用できない」に記載されています。
また、Java API に多くの変更が加えられていることが、アップグレードされたコードに問題を生じる場合もあります。Java 言語に総称型が導入されたため、Object パラメータを取るメソッド シグネチャは、Java 1.4 においては従来よりも強く型付けされるようになりました。そのため、バージョン 8.1 では実行時にならないと検出できなかった多くのエラーを、Workshop for WebLogic バージョン 9.2 ではコンパイル時に検出できます。たとえば、以下のようなコードがあるとします。
String s; Thing t; s.compareTo(t);
バージョン 8.1 では、このコードに対してコンパイル エラーは発生せず、実行時に ClassCastException が発生します。バージョン 9.2 では、この compareTo(t) がコンパイル エラーとなります。なぜなら、8.1 における String.compareTo() は単に Object パラメータを取りましたが、9.2 では実際に String パラメータが要求されるようになったからです。
原則としては、コードのデバッグが済んでいればこの種のエラーは含まれていないと考えられますが、アップグレード後のコンパイルで実際にエラーが発生した場合には、プロジェクトのビルドを正常に完了するにはコードを修正する必要があります。
アップグレード プロセス中には Workshop for WebLogic アップグレード ツールによって、キー ライブラリの移動をサポートするためにパッケージのインポート文が更新されます。ただし、これによってバージョン 8.1 のパッケージのクラス (クラスはまだそのパッケージにある) を使用するコードが破綻するおそれがあります。たとえば、「アップグレード ツール」によって次の変更が行われるとします。
import com.bea.wlw.netui.util.*;
上記は、次のように変更されます。
import org.apache.beehive.netui.util.*
この場合、com.bea.wlw.netui.util.TemplateHelper
はまだ旧バージョンのパッケージにあるのでインポートされないままになります。Workshop for WebLogic のクイック フィックス機能を使用して必要なパッケージをインポートすることによって、簡単にコードを修正できます。さらに徹底した修正を行うには、アップグレードを行う前にワイルドカードを削除し、バージョン 8.1 のコードにクラスを明示的にインポートします。
バージョン 8.1 には PointBase データベースに付属する API が含まれています。これらの API はバージョン 9.2 ではサポートされていません。
バージョン 8.1 の IDE では標準に準拠していないスキーマを使用できましたが、バージョン 9.2 の IDE では使用できなくなっています。そのため、アップグレード時に無効なスキーマによってエラーが生成されます。ただし、エラーは IDE に表示されますが、実行時の動作には影響しないはずです。
無効な状態のスキーマを引き続き使用する場合でも IDE にエラーが表示されないようにするには、スキーマ検証を無効にします。検証を無効にすると、検証が必要であってもすべてのスキーマに対する検証が無効になります。スキーマ検証を無効にするには、次の手順に従います。
「IDE で使用するためのサーバ定義の作成」で説明されているとおりに新しいサーバを作成すると、WebLogic Workshop バージョン 8.1 のドメインをアップグレードできます。
古いバージョンのドメインが検出されました。アップグレード ウィザードを使用してドメインをアップグレードするには、ここをクリックしてください。