このマニュアルはインデックスが付いた配備ディレクトリだけに関係します。
配備済みアプリケーションのディレクトリ名に付加されるインデックス番号は、インデックス作成機構として実装されています。 この機構により、開発者は配備済みアプリケーションに関連する JAR ファイルやクラスファイルを修正することが可能です。 Windows プラットフォームでは、ロードしたファイルを上書きすると、共有違反が発生するため、この機構は特に重要です。Windows はロードしたファイルをロックします。セッションが開始されると、ファイルはサーバーインスタンスや IDE (統合開発環境、Integrated Development Environment) にロードされます。共有違反が発生した場合は、次の 2 つの回避方法が可能です。
更新されたクラスファイル (元は JAR ファイルの一部) をコンパイルし、クラスパスに置くことで、古いクラスファイルより前にロードさせます。次に、再ロードがアクティブであれば、Sun ONE Application Server に対してアプリケーションの再ロードを許可します。
JAR ファイルを更新し、EAR ファイルを新しく作成して、アプリケーションを再配備します。
Solaris プラットフォームでは、ファイルをロックするという制約がないため、アプリケーションを再配備する必要はありません。
Windows プラットフォーム上で IDE を起動するか、ANT ファイルをコピー、コンパイルなどして、配備済みアプリケーションを変更すると、ほかの箇所にも変更が発生することに注意してください。ファイルロックによる制約を回避するために、ディレクトリ名に増分したインデックス番号が付加されて、新しいディレクトリ名が作成されます。たとえば、Solaris プラットフォームの場合、J2EE アプリケーションの helloworld は、Sun ONE Application Server の次のディレクトリに格納されます。
appserv/domains/domain1/server1/applications/j2ee-apps/helloworld_1
ディレクトリ名の変更は、配備済みアプリケーション(例: HelloServlet.java) を構成するサーブレットにも適用されます。Sun ONE Studio IDE を起動し、サーブレットのソースファイルを変更した後、前述のディレクトリを指定して javacでコンパイルします。ソースファイルを適切なロケーションでコンパイルし、アプリケーションで再ロードするファイルがあると、server.xml ファイルの reload フラグが True にセットされます。アプリケーションを再度アセンブルして、再配備しなくても、サーバーインスタンスを実行するだけで変更内容が反映されます。
Windows プラットフォームの場合、ファイルがロックされるため、JAR ファイルとクラスファイルは変更およびアップデートができません。そのため、Windows プラットフォームでの解決には、次の 2 つの方法があります。
変更したソースファイルをコンパイルし、クラスパスにクラスファイルまたは JAR ファイルを付加し、ソースファイルの変更内容を有効にします。
helloworld のソースを変更し、アセンブルした後、古い helloworld を削除せずに、配備しなおします。
配備済みアプリケーションのディレクトリ名に増分したインデックス番号が付加されるため、2 番目の方法が推奨されています。2 つ目の helloworld アプリケーションを配備すると、ディレクトリ構造は次のようになります。
appserv/domains/domain1/server1/applications/j2ee-apps/helloworld_1
appserv/domains/domain1/server1/applications/j2ee-apps/helloworld_2
2 番目の helloworld は helloworld_2 に格納されます。