Web アプリケーションは、次の表のディレクトリ構造を維持している必要があります。単独で、またはエンタープライズアプリケーションの一部として Web アプリケーションをデプロイできます。
ディレクトリ |
説明 |
---|---|
<Web アプリケーション> (ルートディレクトリまたは WAR ルート) |
WEB-INF ディレクトリおよび、ユーザーの Web ブラウザからアクセスされる JSP、HTML ページ、カスケーティングスタイルシート、画像、JavaScript ファイルなどの全てのファイルを格納します。 これらのファイルは、Web アプリケーションのルートディレクトリ、または予約名 WEB-INF を使用しない任意のサブディレクトリに直接置くことができます。 |
/WEB-INF |
classes および lib ディレクトリ、標準 Web アプリケーションデプロイメントディスクリプタ (web.xml)、さらに必要に応じて JRun 固有のデプロイメントディスクリプタ (jrun-web.xml) を格納します。デプロイメントディスクリプタの詳細については、弟 1 章、「J2EE モジュールの設定」を参照してください。 |
/WEB-INF/classes |
サーブレット、その他の Java クラス、および JAR ファイルにパッケージされない関連リソースを格納します。 |
/WEB-INF/lib |
クラスおよび関連リソースが含まれている JAR ファイルを格納します。 |
このセクションでは、JRun で Web アプリケーションをデプロイするための準備の概要について説明しますが、特定のツールについては説明しません。JRun には XDoclet というオープンソースツールが用意されています。このツールは、ファイル名が Servlet または Library で終わるサーブレットおよびタグライブラリソースファイル内に、特殊な Javadoc コメントをベースにした Web アプリケーションデプロイメントディスクリプタと JSP タグライブラリディスクリプタ (TLD) を生成します。JRun では、JRun 固有のデプロイメントディスクリプタをサポートするように XDoclet を拡張し、自動コンパイルおよびデプロイをサポートしています。詳細については、『JRun プログラマーガイド』を参照するか、XDoclet の Web サイト (sourceforge.xdoclet.org) をご覧ください。
JAR ファイル内にデプロイする場合は、タグライブラリファイル (TLD) を META-INF ディレクトリまたはMETA-INF ディレクトリのサブディレクトリにおく必要があります。Web アプリケーションに直接デプロイする場合は、TLD ファイルを WEB-INF ディレクトリまたはそのサブディレクトリに置く必要があります。JSP タグライブラリディレクティブの uri 属性内の TLD ファイルへのパスはスラッシュで始まり、JSP を含んでいる Web アプリケーションのルートを基準にしています。タグライブラリディレクティブは TLD ファイルを直接指すか、あるいは TLD ファイルを含んでいる JAR ファイルを指すことができます。
デプロイメントディスクリプタの詳細については、弟 1 章、「J2EE モジュールの設定」を参照してください。
メモ: JRun 3.x 用にプリコンパイルされている JSP は JRun 4 では使用できません。オリジナルのコンパイル済み JSP を削除し、JRun 4 用にコンパイルし直す必要があります。
jar cvf <Web モジュール>.war
ここで、<Web モジュール> は Web アプリケーションの名前です。
パフォーマンスとセキュリティ上の理由から、ダイナミック JSP コンパイルを無効にして、テキストベースの .jsp ファイルではなく、バイナリの .class ファイルを配布できます。
次の例に太字で示してあるように、<JRun のルートディレクトリ>/servers/
<JRun サーバ>/SERVER-INF/default-web.xml ファイルで、JSPServlet の translationDisabled 初期化パラメータを true に設定します。
<servlet>
<servlet-name>JSPServlet</servlet-name> <servlet-class>jrun.jsp.JSPServlet</servlet-class> <init-param> <param-name>translationDisabled</param-name> <param-value>true</param-value> </init-param> </servlet>
JSPC コンパイラは、Web サーバのコンテキストの外部で JSP をコンパイルするときに使用するコマンドラインツールです。JSPC コンパイラを使用すると、JSP のリクエスト時に JRun を使用して JSP をコンパイルするのではなく、コマンドラインから明示的に JSP をコンパイルできます。JSPC が <JRun のルートディレクトリ>/bin ディレクトリに置かれている場合は IBM jikes コンパイラを使用します。そうでない場合は、Sun javac コンパイラを使用します。
メモ: JSPC コンパイラは、JRun での JSP のコンパイルに使用されるコンパイラと同じコンパイラです。唯一異なる点は、JSPC コンパイラはコマンドラインから起動することです。
次のコマンドを使用して、JSPC コンパイラを呼び出します。JSPC が <JRun のルートディレクトリ>/bin ディレクトリに置かれている場合は IBM jikes コンパイラを使用します。そうでない場合は、Sun javac コンパイラを使用します。
jspc
[-w web_app_root] [-d output_directory] [-k keep processing on errors] [JSP names]
JSPC コンパイラを使用して、jrun-web.xml デプロイメントディスクリプタで仮想マッピングが指定されている Web アプリケーションを処理する場合は、-w 引数を指定する必要があります。
次に、ページ foo.jsp をコンパイルする例を示します。このページは、c:/myapps/store にドキュメントルートディレクトリを持つ Web アプリケーションの一部です。この例では、JSPC コンパイラを実行するために必要な jrun.jar は、CLASSPATH 環境変数に含まれています。
jspc -w c:\jrun -d c:\myapps\store\WEB-INF\classes foo.jsp
次の例では、複数の JSP をコンパイルします。JSP のパスにワイルドカードが使用されていることに注意してください。
jspc -d c:\myapps\store\WEB-INF\classes *.jsp store\*.jsp