Web アプリケーションの設定

このセクションでは、標準 Web アプリケーションデプロイメントディスクリプタである web.xml と、JRun 固有のデプロイメントディスクリプタである jrun-web.xml について説明します。詳細については、<JRun のルートディレクトリ>/docs/descriptordocs/index.html ファイルにリストされているデプロイメントディスクリプタのドキュメントを参照してください。

デプロイメントディスクリプタの設定の大部分は、Web アプリケーションのサーブレットおよび JSP に直接対応しています。サーブレットおよび JSP のプログラミング方法の詳細については、『JRun プログラマーガイド』および「JRun ドキュメントの概要」に記載されている参考文献を参照してください。

web.xml デプロイメントディスクリプタについて

標準 Web アプリケーションデプロイメントディスクリプタである web.xml を使用して、次の表のような Web アプリケーションの要素を設定します。有効な web.xml ファイルに子要素は不要なので、ユーザーが設定する要素は、Web アプリケーション内の要素によって異なります。
XML 要素
説明
icon、display-name、description
ツールで使用するイメージ、Web アプリケーション名、および説明
context-param (0 以上)
サーブレットコンテキスト初期化パラメータ
filter (0 以上)
サーブレットフィルタ定義
filter-mapping (0 以上)
サーブレット名または URL パターンへのサーブレットフィルタマッピング
listener (0 以上)
Web アプリケーションのリスナ bean のデプロイプロパティ
servlet (0 以上)
サーブレット定義
servlet-mapping (0 以上)
URL パターンへのサーブレットマッピング
session-config
Web アプリケーションのセッションパラメータ
mime-mapping (0 以上)
ファイル拡張子と MIME タイプとのマッピング
welcome-file-list
ウェルカムファイルの要素が順番に並んだリスト
error-page (0 以上)
エラーコードまたは例外タイプと、Web アプリケーションのリソースへのパスとのマッピング
taglib (0 以上)
JSP タグライブラリの定義
resource-env-ref (0 以上)
JRun サーバ環境で管理されているオブジェクトへの Web アプリケーションのリファレンス
resource-ref (0 以上)
外部リソースへの Web アプリケーションの
リファレンス
security-constraint (0 以上)
セキュリティ制限と 1 つ以上の Web リソースコレクションとの関連付け
login-config
フォームログインメカニズムで必要な認証方法、範囲名、および属性の宣言
security-role (0 以上)
セキュリティロールの宣言
env-entry (0 以上)
Web アプリケーションの環境エントリ
ejb-ref (0 以上)
サーブレット、JSP、またはタグライブラリコード内の、EJB のホームへのリファレンス。
アセンブル担当者のロールでは、オプションの ejb-link 要素を使用して、EJB リファレンスが Web アプリケーションと同じエンタープライズアプリケーション内の EJB にリンクされていることを指定できます。ejb-name 値の前に、EJB モジュールへの相対パスとシャープ記号 (#) を付ける必要があります。
EJB の jrun-ejb-jar.xml ファイル内で ejb-ref 要素のデフォルトの JNDI 名が変更された場合や、EJB が Web アプリケーションと同じエンタープライズアプリケーション内にない場合、jrun-web.xml ファイルにはその JNDI 名を含んでいる対応する ejb-local-ref 要素が必要です。
ejb-local-ref (0 以上)
サーブレットまたは JSP コード内の、EJB のホームへのリファレンス。
アセンブル担当者のロールでは、オプションの ejb-link 要素を使用して、EJB ローカルリファレンスが Web アプリケーションと同じエンタープライズアプリケーション内の EJB にリンクされていることを指定できます。EJB が別の EJB モジュール内にある場合は、ejb-name 値の前に、EJB モジュールへの相対パスとシャープ記号 (#) を付ける必要があります。
EJB の jrun-ejb-jar.xml ファイル内で ejb-local-ref 要素のローカルホームのデフォルトの JNDI 名が変更された場合や、EJB が Web アプリケーションと同じエンタープライズアプリケーション内にない場合、jrun-web.xml ファイルにはその JNDI 名を含む、対応している ejb-local-ref 要素が必要です。
このファイルのルート要素は web-app です。

例:web.xml デプロイメントディスクリプタ

このセクションの例では、次の web.xml ファイルを示します。

また、<JRun のルートディレクトリ>/servers/samples ディレクトリ内の JRun サンプルサーバ上のアプリケーションの web.xml ファイルを表示することもできます。

web.xml:空のファイル

次の空のデプロイメントディスクリプタは、使用可能な最も基本的なものになります。開発の初期段階でこのディスクリプタを使用して、JSP を含みサーブレットを含まない Web アプリケーション (web-app) をデプロイし、アプリケーションが複雑になるにつれてディスクリプタに要素を追加できます。<JRun のルートディレクトリ>/servers/<JRun サーバ>/SERVER-INF ディレクトリの default-web.xml ファイル内で、デフォルトのウェルカムファイルは index.html および index.jsp として設定されています。

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.3.dtd">
<web-app>
</web-app>

メモ:  デフォルトの JRun サーバ、および JMC を使用して追加された各 JRun サーバには、単純な web.xml ファイルとともに default-war Web アプリケーションが含まれている default-ear エンタープライズアプリケーションがあります。新規 JSP およびサーブレットを短時間でデプロイしてテストするには、これらの JSP およびサーブレットを default-war Web アプリケーションに入れます。

web.xml:サーブレットおよびウェルカムファイルの設定

次のデプロイメントディスクリプタではサーブレットを設定し、サーブレットを URL パターンにマッピングして、Web アプリケーションのウェルカムファイルを指定します。

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <servlet>
    <servlet-name>AdminServlet</servlet-name>
    <display-name>AdminServlet</display-name>
    <servlet-class>packagename.Administrator</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AdminServlet</servlet-name>
    <url-pattern>/admin</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

web.xml:セキュリティ設定

次のデプロイメントディスクリプタでは、Web アプリケーションセキュリティの次の要素を設定します。

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2.3.dtd">
<web-app>
<security-constraint>
  <web-resource-collection>
    <web-resource-name>Name1</web-resource-name>
    <url-pattern>/services/AdminService</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
    <role-name>Manager</role-name>
  </auth-constraint>
</security-constraint>
<login-config>
  <auth-method>BASIC</auth-method>
</login-config>
<security-role>
  <role-name>Manager</role-name>
</security-role>
</web-app>

jrun-web.xml デプロイメントディスクリプタについて

JRun 固有の Web アプリケーションデプロイメントディスクリプタである jrun-web.xml を使用して、次の表のような Web アプリケーションの要素を設定します。このファイルのルート要素は jrun-web-app です。Web アプリケーションにいずれの要素も必要ない場合、jrun-web.xml ファイルは不要です。

メモ:  jrun-web.xml ファイルは自動的に生成できます。詳細については、 弟3章の"JRun 固有のデプロイメントディスクリプタの操作,"を参照してください。
XML 要素
説明
context-root
Web アプリケーションのコンテキストルート (論理ルート) の宣言。
Web アプリケーションがエンタープライズアプリケーションの一部である場合は、jrun-web.xml ファイルではなくエンタープライズアプリケーションの application.xml ファイル内で context-root を設定する必要があります。
reload
サーブレット、サーブレットヘルパークラス、および JSP ヘルパークラスが変更されたときに、それらを自動的にリロードするかどうかを指定するブール値設定。
デフォルトは true です。
compile
ソースファイルが変更されたときに、サーブレットおよびサーブレットヘルパークラスを自動的にコンパイルするかどうかを指定します。
デフォルトは true です。
session-config
Web アプリケーションのセッションを設定するための次のセクションが含まれています。
  • persistence-config には、セッションのパーシスタンスプロパティを設定するための要素を指定します。
  • replication-config には、セッションの複製を設定するための要素を指定します。
  • cookie-config には、Cookie を設定する要素を指定します。
load-system-classes-first
エンタープライズアプリケーションクラスおよび Web アプリケーションクラスの前にシステムクラスをロードするかどうかを指定します。デフォルトのクラスローダー委任モデルでは、システムクラスを最初にロードすることになっていますが、サーブレット仕様書では Web アプリケーションクラスを最初にロードするように推奨しています。
デフォルトは true です。
ejb-ref
EJB 開発者が指定した ejb-ref とその JNDI 名とのマッピング。デプロイ担当者が実際の JNDI 名を指定します。
この要素は、EJB クラスを JNDI に 2 回以上バインドする場合のみ必要です。
ejb-local-ref
EJB 開発者が指定したローカルホームの ejb-ref 名とその JNDI 名とのマッピング。デプロイ担当者が実際の JNDI 名を指定します。
この要素は、EJB クラスを JNDI に 2 回以上バインドする場合のみ必要です。
resource-env-ref
Web アプリケーション開発者が指定した resource-env-ref-name とその JNDI 名とのマッピング。デプロイ担当者が JNDI 名を指定します。
この要素は、管理されたオブジェクトを JNDI に 2 回以上バインドする場合のみ必要です。
resource-ref
Web アプリケーション開発者が指定した resource-ref-name とその JNDI 名とのマッピング。デプロイ担当者が実際の JNDI 名を指定します。
この要素は、リソースを JNDI に 2 回以上バインドする場合のみ必要です。
virtual-mapping
リソースパスと物理的な場所とのマッピング。この場所は、必ずしも Web アプリケーションのルートにあるとはかぎりません。リソースパスは常にスラッシュで始める必要があり、最後にワイルドカード (*) を付けることができます。これは、指定されたパスで始まるすべてのリソースパスがシステムパスを使用して解決されることを示します。
/WEB-INF/classes または /WEB-INF/lib を他の場所にマッピングすると、Web アプリケーションのクラスパスにその場所が含められます。
JRun 3.1 で使用した use-web-server-root プロパティは JRun 4 には存在しません。virtual-mapping プロパティに置き換えられました。use-web-server-root 設定を virtual-mapping 設定に手動で置き換える必要があります。

例:jrun-web.xml デプロイメントディスクリプタ

次のデプロイメントディスクリプタでは、コンテキストルートを設定し、サーブレットのダイナミックリロードおよびコンパイル機能を有効にし、2 つの仮想パスマッピングを定義します。

<?xml version ="1.0"?><!DOCTYPE jrun-web-app SYSTEM
      "jrun-web.dtd">
<jrun-web-app>
  <context-root>myapp</context-root>
  <reload>true</reload>
  <compile>true</compile>
  <virtual-mapping>
    <resource-path>/images/*</resource-path>
    <system-path>usr/local/images</system-path>
  </virtual-mapping>
  <virtual-mapping>
    <resource-path>/WEB-INF/classes</resource-path>
    <system-path>d:/app1/library</system-path>
  </virtual-mapping>
</jrun-web-app>