Web アプリケーションのカスタマイズ

インストール時に公開される Web アプリケーションへの参照を追加、変更、または削除することによって、インストールされるソフトウェアおよびファイルを追加したり削除できます。WAR ファイルを web-apps ファイルセットに追加し、インストール時にアプリケーションを公開する UNIX インストール スクリプトまたは Windows InstallShield スクリプトのいずれかを変更します。アプリケーションを削除するには、ファイルを削除してスクリプトを変更します。

既定の JRun インストールでは、default と admin の 2 つの JRun サーバが作成され、次の Web アプリケーションがセットアップされます。

以降のセクションでは、JRun インストール時に公開されるアプリケーションを追加および削除する方法について説明します。

さらに、WebAppController インターフェイスでは、これらの作業の一部を実行できます。詳細は、"Web アプリケーションの制御"を参照してください。

JRun Web アプリケーションの削除

インストール ファイルを小さくする目的で、または既定のアプリケーションを顧客に対して非表示にする目的で、既定のアプリケーションの一部またはすべてを削除することが必要な場合があります。最も一般的には、default-app、demo-app、invoice-app、および rds-app アプリケーションを削除します。顧客が JRun 管理コンソール (JMC) を使用して JRun を設定できるようにする場合は、jmc-app をインストールから削除しないでください。


メモ

JRun インストーラ コンパイルに変更を加える前に、すべてのファイルを必ずバック アップしてください。


このセクションでは、InstallShield プロジェクト (Windows) およびインストール スクリプト (UNIX) を編集して、Web アプリケーションを削除する方法について説明します。アプリケーションが実行可能モジュールに組み込まれないように (つまり、必要以上にファイル サイズが大きくならないように) makefile を編集する必要もあります。Windows と UNIX での rds-app の削除例については、"例 : web-rds の削除"を参照してください。

Windows でのアプリケーションの削除

Web アプリケーションを削除するには、makefile だけでなく InstallShield プロジェクトも編集する必要があります。アプリケーションを削除するには、InstallShield プロジェクトの jrun.rul ファイル内の undeployApp 関数を使用します。

setup.rul で deploy 関数への呼び出しをコメント化し、インストール時に非表示にするアプリケーションを選んで除外することもできます。

UNIX でのアプリケーションの削除

/dist/core-unix/bin/install ファイルの "#deploy apps" セクションを編集して、インストール時に非表示にするアプリケーションを削除します。アプリケーションの前に # を付けてコメント化するか、行を削除します。

次のコード例は、既定でインストールされる 3 つの JRun アプリケーションを示します。demo-app アプリケーションはコメント化され、無効になっています。

# deploy apps 
deploy "$JRUNROOTDIR/web-apps/default-app/default-app.war" default 
    default-app / "$JRUNROOTDIR/servers/default/default-app" 
deploy "$JRUNROOTDIR/web-apps/jmc-app/jmc-app.war" admin jmc-app  
    / "$JRUNROOTDIR/servers/admin/jmc-app" 
#deploy "$JRUNROOTDIR/web-apps/demo-app/demo-app.war" default demo-app 
#    /demo "$JRUNROOTDIR/servers/default/demo-app" 

例 : web-rds の削除

web-rds アプリケーションは JRun Studio を使用可能にするために使用します。JRun Studio がインストールの一部である場合を除き、このアプリケーションを製品とともに配布する必要はありません。このアプリケーションの自動公開を無効にするには、次のセクションで説明されている手順に従ってください。

Windows で web-rds を無効にするには

  1. JRun キットへのパス¥installers¥JRun 3¥Script Files¥ComponentEvents.rul
    ファイルを開きます。
  2. RDSComp_Installed = TRUERDSComp_Installed = FALSE に変更します。
  3. RDSComp_Uninstalled = TRUERDSComp_Uninstalled = FALSE に変更します。
  4. Events.rul ファイルを保存して閉じます。

UNIX で web-rds を無効にするには

  1. JRun キットへのパス/dist/core-unix/bin/install ファイルを開きます。
  2. 次の行を削除するか、コメント化します。
    deploy "$JRUNROOTDIR/web-apps/rds-app/rds-app.war" admin rds-app
      /CFIDE "$JRUNROOTDIR/servers/admin/rds-app"
    
  3. install ファイルを保存して閉じます。

Web アプリケーションの追加

アプリケーション ファイルをファイル セットに追加し、インストール スクリプトを変更することにより、インストール時に Web アプリケーションが公開されるように設定できます。このセクションでは、Windows および UNIX での Web アプリケーションの追加方法を説明します。

インストールするアプリケーションが 2 つ以下の場合、お客様のアプリケーションを公開する最も簡単な方法は、OEM リソースに付属する demo-app および default-app インフラストラクチャを再利用することです。これらのアプリケーションの WAR ファイルは /dist/web-apps にあります。その WAR ファイルをいずれかのディレクトリにコピーし、WAR ファイル名を JRun アプリケーションの名前に変更できます。たとえば、YourApp.war を /demo-app ディレクトリにコピーし、YourApp.war を demo-app.war という名前に変更します。

アプリケーションのディレクトリ構造に /demo-app または /default-app という名前を付けない場合、あるいは公開するアプリケーションが 3 つ以上ある場合は、次のセクションの説明に従ってください。


メモ

JRun インストーラ コンパイルに変更を加える前に、すべてのファイルを必ずバック アップしてください。


Windows および UNIX のいずれのインストールの場合も、makefile を編集して
アプリケーションを含めて /dist ツリーに追加し、アプリケーションをインストール ファイルで使用できるようにします。

Windows での Web アプリケーションの追加

Windows でアプリケーションを追加するには

  1. makefile を開きます。
  2. 大文字と小文字を区別せずに文字列 DEMO を検索し、独自のカスタム コードを追加する場所をすべて見つけます。demo-app 用のコードをコピーして、追加する必要のあるコードを確認します。
  3. makefile を保存します。
  4. /dist/web-apps ツリーで、makefile に指定したアプリケーション名を持つ別のディレクトリを作成します。これにより、アプリケーションがインストール ファイルで使用できるようになります。WAR ファイルを新規ディレクトリにコピーします。
  5. InstallShield プロジェクト ファイルを編集して Web アプリケーションを含めます。

    InstallShield プロジェクトでは、setup.rul から deployApp() 関数を呼び出すことに よってアプリケーションが公開されます。たとえば、setup.rul の次のコードによって demo-app が公開されます。

      SdShowMsg ( "Web アプリケーションのデモを追加..." , TRUE );                                                                   
      deployApp(TARGETDIR ^ "demo-app.war", "default", "demo-app", _
      "/demo", TARGETDIR ^ "servers¥default¥demo-app", TARGETDIR);
      DeleteFile(TARGETDIR ^ "demo-app.war");
      SdShowMsg ( "Web アプリケーションのデモを追加しています。お待ちください..." , 
    FALSE); 
    

    setup.rul ファイルは /installers/JRun 3/Script Files にあります。

  6. InstallShield を使用する場合、新規アプリケーションに新規の FileGroup を追加することを忘れないでください。
  7. 新規の FileGroup を追加した後で、メディアを再構築してプロジェクトを保存する必要があります。

UNIX でのアプリケーションの追加

UNIX で Web アプリケーションを追加するには

  1. makefile を開きます。
  2. 大文字と小文字を区別せずに文字列 DEMO を検索し、独自のカスタム コードを追加する場所をすべて見つけます。demo-app 用のコードをコピーして、追加する必要のあるコードを確認します。
  3. makefile を保存します。
  4. /dist/web-apps ツリーで、makefile に指定したアプリケーション名を持つ別のディレクトリを作成します。これにより、アプリケーションがインストール ファイルで使用できるようになります。WAR ファイルを新規ディレクトリにコピーします。
  5. コードを /dist/core-unix/bin/install ファイルに追加してアプリケーションを公開します。

    この install ファイルには、公開されるアプリケーションの一覧と deploy サブルーチン が含まれています。

Web アプリケーションの公開

JRun には、ユーザが JRun をインストールした後で Web アプリケーションを公開、再公開、削除するための WarDeploy ユーティリティがあります。UNIX インストーラでは JRun のインストール時に WarDeploy が使用されます。

ユーザはアプリケーションのユーザ インターフェイスを介して WarDeploy を呼び出すので、JRun 管理コンソールのインターフェイスを使用してアプリケーションの公開や削除を行う必要はありません。

WarDeploy ユーティリティは、JMC の [Web アプリケーションの公開] パネルと同様の機能を果たします。このユーティリティは、アプリケーションの WAR ファイルを既存の JRun サーバに公開します。WAR ファイルは、JSP、サーブレット、イメージ、および Web アプリケーションのその他の関連コンポーネントで構成されています。これはサーブレット仕様の定義に従って、構造化された階層に配置されます。この構造には、記述子ファイルの web.xml も含まれます。

WarDeploy の使用

WarDeploy は jrun.jar ファイル内の allaire.jrun.tools パッケージの一部です。jrun.jar ファイルを使用するには、このファイルをクラスパスに含める必要があります。WarDeploy を使用してアプリケーションを公開するには、コマンド ラインで 6 つの必須パラメータを渡すか、-config オプションとこれらのパラメータを含むファイルを使用します。

WarDeploy を使用してアプリケーションを削除するには、-remove オプションを使用してコマンド ラインで 3 つの必須パラメータを渡すか、-config オプションを使用してこれらの 3 つのパラメータを含むファイルを参照します。

WarDeploy の構文は次のとおりです。

java -cp [classpath] allaire.jrun.tools.WarDeploy 
[-deploy|redeploy]
[deploy.war.path=value 
deploy.server.name=value 
deploy.webapp.name=value
deploy.context.path=value 
deploy.webapp.rootdir=value
deploy.jrun.rootdir=value] 
[-config=property_file_name]
  [-remove]
    [deploy.server.name=value 
    deploy.jrun.rootdir=value
    deploy.webapp.name=value]
    [-config=property_file_name]

redeploy オプションによって、アプリケーションで remove が呼び出され、次に deploy が呼び出されます。WarDeploy の使用例については、"WarDeploy の使用例"を参照してください。次の表では、プロパティについて説明しています。
プロパティ
説明
deploy.war.path
公開する WAR ファイルまたはディレクトリへのファイル システム パス
deploy.server.name
Web アプリケーションの公開先となる JRun サーバ名
deploy.webapp.name
サーバ内で JRun Web アプリケーションに割り当てる名前。この名前は JRun サーバとは異なる固有の名前でなければなりません。
deploy.context.path
Web アプリケーションにアクセスするためのコンテキスト パス URI。このパラメータは、JMC の [Web アプリケーションの公開]
パネルの [アプリケーションの URI ] に対応しています。
deploy.webapp.rootdir
Web アプリケーションの公開先となるルート ディレクトリ。
WarDeploy ユーティリティは WAR ファイルまたは WAR ディレクトリの内容をこのディレクトリにコピーします。
deploy.jrun.rootdir
JRun ルート インストール ディレクトリを指すパス。jrun.rootdir
システム プロパティが定義されている場合、このプロパティは
オプションです。

WarDeploy の使用例

このセクションでは、WarDeploy ユーティリティの使用例を示します。

コマンド ラインでの WarDeploy の使用

次の例では、コマンド ラインでパラメータを渡すことによって nickdanger JRun
サーバ上に hws-app を公開します。

c:¥>java -cp "c:¥Program Files¥Allaire¥JRun¥lib¥jrun.jar"   
  allaire.jrun.tools.WarDeploy -deploy 
  deploy.war.path="c:¥temp¥hws.war"  
  deploy.server.name=nickdanger  
  deploy.webapp.name="hws-app" 
  deploy.context.path=/nickshardware  
  deploy.webapp.rootdir="c:¥Program Files¥Allaire¥JRun¥servers¥      nickdanger¥hardware_store"
  deploy.jrun.rootdir="c:¥Program Files¥allaire¥JRun" 

config ファイルを指定した WarDeploy の使用

次の例では、コマンド ラインにパラメータを渡すのではなく、パラメータの含まれるファイルを指定します。

c:¥java -cp "c:¥Program Files¥Allaire¥JRun¥lib¥jrun.jar" 
allaire.jrun.tools.WarDeploy -deploy -config="c:¥temp¥war.txt"

war.txt ファイルの内容は次のとおりです。

deploy.war.path="c:¥temp¥hws.war" deploy.server.name=nickdanger 
deploy.webapp.name="hws-app" deploy.context.path=/
nickshardware deploy.webapp.rootdir="c:¥Program 
Files¥Allaire¥JRun¥servers¥nickdanger¥hardware_store" deploy.jrun.rootdir="c:¥Program 
Files¥allaire¥JRun" 

アプリケーション削除時における WarDeploy の使用

次の例では、nickdanger JRun サーバから hws-app を削除します。

c:¥java -cp "c:¥Program Files¥Allaire¥JRun¥lib¥jrun.jar" 
allaire.jrun.tools.WarDeploy -remove 
deploy.server.name=nickdanger
deploy.webapp.name=hws-app 
deploy.jrun.rootdir="c:¥Program Files¥Allaire¥JRun"

JSP ソース コードの非表示

Web アプリケーションの一部として JSP ページを公開する場合、顧客にこれらのページのクリア テキスト バージョンを提供しない場合もあります。代わりに、これらのページのバイナリ (.class) バージョンのみを配布できます。

JRun では、JSP ページがクライアントによって初めて要求された場合、または要求された JSP ページが最後の要求後に変更されていた場合に、JSP ページがコンパイルされ、そのページのクラス ファイルが作成されます。ただし、公開されているアプリケーションで、コンパイルを行わずに JRun によってそのページのクラス ファイルが必ず読み込まれるように強制することもできます。

JSP ページのコンパイルを行わない理由としては、次のようなものがあります。

JSP のコンパイル プロセスと JSP コンパイラの回避による影響については、『JRun によるアプリケーションの開発』を参照してください。

JSP ページのコンパイルの無効化

JSP ページのコンパイルを明示的に無効にするには、JMC を使用して JSP ページを処理する JRun サーブレットを変更します。個別の Web アプリケーションに対してコンパイルを有効または無効にすることができるように、この設定は Web アプリケーション レベルで行います。

JSP のコンパイルを無効にするには

  1. JMC で [サーバ名] > [アプリケーション] > [アプリケーション名] > [サーブレット URL のマッピング] を選択します。

    [サーブレット URLのマッピング] パネルが JMC の右側に表示されます。

  2. [編集] ボタンをクリックします。

    サーブレット URL のマッピングの編集ウィンドウが表示されます。

  3. [仮想パス/拡張子] フィールドに「*.jsp」と入力します。
  4. [呼び出されるサーブレット] フィールドに「jsprt」と入力します。
  5. [更新] ボタンをクリックします。
  6. JRun サーバを再起動します。

    これで、JSP ページに対するすべての要求が jsprt サーブレットによって処理される ようになります。このサーブレットは JSP ページの存在をチェックせず、対応する クラス ファイルのみを検索します。そのため、公開される Web アプリケーションで は JSP ページを公開する必要がありません。JSP ファイルはソース コード ファイルで あるため、公開されるアプリケーションからソース コードを省略できます。

JSP のプレコンパイル

コンパイルをオフにする場合は、すべての JSP ページの対応するクラス ファイルをインストールに含める必要があります。したがって、アプリケーションを公開する前に、すべての JSP ページをプレコンパイルしてクラス ファイルを作成する必要があります。プレコンパイルは次のどちらかの方法で行います。