BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

Web アプリケーションのアセンブルとコンフィグレーション

 Previous Next Contents Index PDF で侮ヲ  

weblogic.xml デプロイメント記述子の要素

この章では、weblogic.xml ファイルで定義するルート要素 <weblogic-web-app> の下にあるデプロイメント記述子の要素について説明します。

weblogic.xml ファイルの DOCTYPE ヘッダは、次のとおりです。

<!DOCTYPE weblogic-web-app PUBLIC
"-//BEA Systems, Inc.//DTD Web Application 7.0//EN"
"http://www.bea.com/servers/wls700/dtd/weblogic700-web-jar.dtd">

http://www.bea.com/servers/wls700/dtd/weblogic700-web-jar.dtdweblogic.xml の文書型記述子 (DTD) を参照することもできます。

 


description

description 要素は、Web アプリケーションの説明文です。

 


weblogic-version

weblogic-version 要素は、この Web アプリケーションをデプロイする WebLogic Server のバージョンを示します。この要素は参照用で、現在 WebLogic Server では使用されていません。

 


security-role-assignment

security-role-assignment 要素は、次の例で示すように、レルム内のセキュリティ ロールと 1 つまたは複数のプリンシパルの間のマッピングを宣言します。

<security-role-assignment>
     <role-name>PayrollAdmin</role-name>
     <principal-name>Tanya</principal-name>
     <principal-name>Fred</principal-name>
     <principal-name>system</principal-name>
</security-role-assignment>

次の表では、security-role-assignment 要素内で定義できる要素について説明します。

要素

必須
省略可能

説明

<role-name>

必須

セキュリティ ロール名を指定する。

<principal-name>

必須

セキュリティ レルムで定義されるプリンシパルの名前を指定する。複数の <principal-name> 要素を使用してプリンシパルをロールにマップできる。セキュリティ レルムの詳細については、『WebLogic Security の管理』を参照。

 


reference-descriptor

reference-descriptor 要素は、Web アプリケーションで使用される名前をサーバ リソースの JNDI 名にマップします。reference-description 要素には次の 2 つの要素が含まれています。 resource-description 要素は DataSource などのリソースをその JNDI 名にマップします。ejb-reference 要素は EJB をその JNDI 名にマップします。

resource-description

次の表では、resource-description 要素内で定義できる要素について説明します。

要素

必須/
省略可能

説明

<res-ref-name>

必須

リソース参照名を指定する。

<jndi-name>

必須

リソースの JNDI 名を指定する。

ejb-reference-description

次の表では、ejb-reference-description 要素内で定義できる要素について説明します。

要素

必須/
省略可能

説明

<ejb-ref-name>

必須

Web アプリケーションで使用する EJB 参照の名前を指定する。

<jndi-name>

必須

参照の JNDI 名を指定する。

 


session-descriptor

session-descriptor 要素には、次の例で示すように HTTP セッションのパラメータを定義する session-param が含まれています。

<session-descriptor>
<session-param>
<param-name>
CookieDomain
</param-name>
<param-value>
myCookieDomain
</param-value>
</session-param>
</session-descriptor>

session-param

次の表では、session-param 要素内で定義できるセッション パラメータの名前と値について説明します。

パラメータ名

デフォルト値

パラメータ値

CookieDomain

Null

クッキーが有効になるドメインを指定する。たとえば、CookieDomain.mydomain.com に設定すると、*.mydomain.com ドメイン内のサーバにクッキーが返される。

ドメイン名には少なくとも 2 つのコンポーネントが必要である。名前を *.com または *.net に設定すると無効になる。

このパラメータを設定しない場合、デフォルトは、クッキーを発行したサーバのドメイン。

詳細については、Sun Microsystems のサーブレット仕様にある Cookie.setDomain() を参照。

CookieComment

Weblogic Server Session Tracking Cookie

クッキー ファイル内のセッションをトラッキングするクッキーを識別するコメントを指定する。

このパラメータを設定しない場合、デフォルトは WebLogic Session Tracking Cookie。アプリケーションに対して、より詳細な名前を指定できる。

CookieMaxAgeSecs

-1

セッション クッキーの有効期間を秒単位で設定する。時間が経過すると、クッキーはクライアントで期限切れになる。

値が 0 の場合、クッキーはすぐに期限切れになる。

最大値は Integer.MAX_VALUE で、クッキーは永久に期限切れにならない。

-1 に設定した場合、クッキーはユーザがブラウザを終了すると期限切れになる。

クッキーの詳細については、Web アプリケーションにおけるセッションとセッション永続性の使用を参照。

CookieName

JSESSIONID

セッション クッキー名を定義する。設定しない場合、デフォルトは JSESSIONID。アプリケーションに対して、より詳細な名前を指定できる。ProxyByExtension を使用している場合は、;jsessionid 識別子または ?jsessionid 識別子を使用して、書き換えた URL を渡すことができる。

CookiePath

Null

ブラウザによるクッキーの送信先のパス名を指定する。

このパラメータを設定しない場合、デフォルトは/ (スラッシュ)。デフォルト値では、ブラウザは、WebLogic Server で指定されているすべての URL にクッキーを送信する。マップ対象を絞り込んだパスを設定し、リクエスト URL を、ブラウザがクッキーを送信するものに限定できる。

CookiesEnabled

true

セッション クッキーの使用はデフォルトで有効になっているが (推奨)、このプロパティを false に設定して無効にすることも可能。テストするためにこのオプションをオフにする場合もある。

CookieSecure

false

このパラメータを設定すると、クライアントのブラウザは HTTPS 接続を介してのみクッキーを返送する。これにより、クッキー ID の安全を確保し、HTTPS だけを使用する Web サイトでのみ使用することが保証される。この機能を有効にすると、HTTP を介したセッション クッキーは機能しなくなり、クライアントが HTTPS 以外のサイトに誘導された場合でもセッションは送信されない。

EncodeSessionIdInQueryParams

false

デフォルトでは、HTTPServletResponse.encodeURL(URL) メソッドを使用して HTTP 応答の URL をエンコードすると、URL の ; 文字の後にパス パラメータとしてセッション識別子が追加される。 この動作は、WebLogic Server のバージョン 6.1 で実装されたサーブレット 2.3 J2EE 仕様で定義されている。

ただし、WebLogic Server のバージョン 6.0 以前のデフォルトでは、URL の ? 文字の後にクエリ パラメータとしてセッション識別子が追加されていた。 この古い動作を有効にするには、このセッション パラメータを true に設定する。

注意: このパラメータは通常、サーブレット 2.3 仕様に完全には準拠していない Web サーバと WebLogic Server が対話する場合に使用する。

InvalidationIntervalSecs

60

WebLogic Server が、タイムアウトした無効なセッションに対してハウスクリーニング チェックを実行してから古いセッションを削除してメモリを解放するまでの待ち時間を秒単位で設定する。このパラメータを使用すると、トラフィックの多いサイトで WebLogic Server の動作を最適化できる。

最小値は毎秒 (1)。 最大値は、週に 1 回 (604800 秒)。 このパラメータを設定しない場合、デフォルトは 60 秒。

PersistentStoreDir

session_db

PersistentStoreTypefile に設定した場合、ディレクトリ パスは、WebLogic Server がセッションを保存する場所に設定される。ディレクトリ パスには、temp ディレクトリの相対パスか絶対パスのどちらかを使用。temp ディレクトリは、Web アプリケーションの WEB-INF ディレクトリ下に生成されたディレクトリか、コンテキスト パラメータ javax.servlet.context.tmpdir で指定されたディレクトリ。

各セッションのサイズに有効なセッション数をかけたサイズを保存できるだけのディスク スペースを確保する必要がある。PersistentStoreDir に作成されたファイルを見ると、セッションのサイズが分かる。各セッションのサイズは、シリアライズされたセッション データの変更のサイズによって異なる。

このディレクトリを複数サーバ間での共有ディレクトリにすると、ファイル永続セッションをクラスタ対応にできる。

このディレクトリは手動で作成する必要がある。

PersistentStorePool

なし

永続ストレージに使用される JDBC 接続プールの名前を指定する。

PersistentStoreTable

wl_servlet_sessions

PersistentStoreType が jdbc に設定されているときだけ適用する。デフォルト以外のデータベース テーブル名を選択した場合に使用される。

PersistentStoreType

memory

永続ストレージの方法を次のいずれかに設定する。

  • memory - 永続セッション ストレージを無効にする。

  • file - ファイル ベースの永続性を使用する (上記の「PersistenceStoreDir」を参照)。

  • jdbc - データベースを使用して永続セッションを格納する(上記の「PersistentStorePool」を参照)。

  • replicated - memory と同じだが、セッション データはクラスタ化されたサーバ間でレプリケートされる。

  • cookie - すべてのセッション データはユーザのブラウザ内のクッキーに格納される。

  • replicated_if_clustered-Web アプリケーションがクラスタ化されたサーバにデプロイされている場合は、実際の PersistentStoreType がレプリケートされる。 それ以外の場合は、memory がデフォルトとなる。

PersistentStoreCookieName

WLCOOKIE

クッキーベースの永続性に使用するクッキーの名前を設定する。 詳細については、クッキーベースのセッション永続性の使用を参照。

IDLength

52

セッション ID のサイズを設定する。

最小値は 8 バイト、最大値は Integer.MAX_VALUE で指定した値。

TimeoutSecs

3600

WebLogic Server がセッションをタイムアウトするまでの待ち時間を秒単位で設定する (秒数)。

最小値は 1、デフォルト値は 3600、最大値は MAX_VALUE で指定した整数値。

トラフィックの多いサイトでは、セッションのタイムアウトを調整すると、アプリケーションの動作を最適化できる。ブラウザ クライアントでいつでもセッションを終了できるようにする必要がある場合でも、ユーザがサイトを離れるか、ユーザのセッションがタイムアウトになれば、サーバに接続する必要はなくなる。

このパラメータは、web.xmlsession-timeout 要素 (分単位で定義) によってオーバライドされる可能性がある。 詳細については、session-configを参照。

JDBConnectionTimeoutSecs

120

WebLogic Server が JDBC 接続をタイムアウトするまでの待ち時間を秒単位で設定する (秒数)。

URLRewritingEnabled

true

URL 書き換えを有効にする。これによって、セッション ID が URL にエンコーディングされ、クッキーがブラウザで無効の場合にセッション トラッキングが実行される。

ConsoleMainAttribute


WebLogic Server Administration Console のセッション モニタを有効にした場合、このパラメータを、モニタリングされた各セッションを認識するためのセッション パラメータの名前に設定する。

TrackingEnabled

true

リクエスト間のセッションを次のいずれかの方法で追跡するよう Web アプリケーションに指示する。

SessionCookie

URLEncoding

false に設定すると、セッションは追跡されず、応答に伴うクッキーは無視され、URL はエンコードされない。

 


jsp-descriptor

jsp-descriptor 要素は、JSP のパラメータ名と値を定義します。パラメータは名前と値の組み合わせで定義します。次の例では、complieCommand パラメータのコンフィグレーション方法を示します。この例のパターンを使って、すべての JSP コンフィグレーションを入力してください。

<jsp-descriptor>
<jsp-param>
<param-name>
compileCommand
</param-name>
<param-value>
sj
</param-value>
</jsp-param>
</jsp-descriptor>

JSP パラメータの名前と値

次の表では、<jsp-param> 要素内で定義できるパラメータの名前と値について説明します。

パラメータ名

デフォルト値

パラメータ値

compileCommand

javac、または WebLogic Server Administration Console の
[コンフィグレーション|チューニング] タブでサーバ用に定義した Java コンパイラ

生成された JSP サーブレットのコンパイルに使用する標準 Java コンパイラの絶対パスを指定する。たとえば、標準 Java コンパイラを使用するには、以下のようにシステム内の場所を指定する。

<param-value>
/jdk130/bin/javac.exe
</param-value>

パフォーマンスを向上させるために、IBM Jikes や Symantec sj などの別のコンパイラを指定する。

compileFlags

なし

1 つまたは複数のコマンドライン フラグをコンパイラに渡す。複数のフラグはスペースで区切り、引用符で囲む。 次に例を示す。

<jsp-param>
<param-name>compileFlags</param-name>
<param-value>"-g -v"</param-value>
</jsp-param>

compilerclass

なし

WebLogic Server の仮想マシンで実行される Java コンパイラの名前。(javac または sj のような実行可能コンパイラの代わりに使用する)。このパラメータが設定されている場合、compileCommand パラメータは無視される。

debug

なし

true に設定すると、デバッグの助けになるように JSP 行番号が生成されたクラス ファイルに追加される。

encoding

ユーザのプラットフォームのデフォルト エンコーディング

JSP ページで使用されるデフォルトの文字セットを指定する。 標準 Java 文字セット名を使用する。

このパラメータを設定しない場合、デフォルトはユーザのプラットフォームのエンコーディング。

JSP コードに含まれる JSP ページ ディレクティブはこの設定をオーバライドする。 次に例を示す。

<%@ page contentType="text/html; charset=custom-encoding”%>

compilerSupports
Encoding

true

true に設定すると、JSP コンパイラは、JSP ページの page ディレクティブに含まれる contentType 属性で指定されたエンコーディングを使用する。contentType が指定されていない場合は、jsp-descriptor の encoding パラメータで定義されたエンコーディングを使用する。

false に設定すると、JSP コンパイラは、中間の .java ファイルを作成するときに JVM 用のデフォルト エンコーディングを使用する。

exactMapping

true

true の場合、JSP の最初の要求時に、新しく作成される JspStub が正確な要求にマップされる。exactMapping が false に設定されている場合、Web アプリケーション コンテナは JSP 用に正確ではない url マッピングを生成する。exactMapping は JSP ページのパス情報を提供する。

keepgenerated

false

JSP コンパイル プロセスの間に生成される Java ファイルを保存する。このパラメータを true に設定しない限り、生成された Java ファイルはコンパイル後に削除される。

noTryBlocks

false

JSP ファイルに、多数のまたは深くネストしたカスタム JSP タグが含まれていて、コンパイル時に java.lang.VerifyError 例外が発生する場合、このフラグを使って JSP を正しくコンパイルするできるようにする。

packagePrefix

jsp_servlet

すべての JSP ページがコンパイルされるパッケージを指定する。

pageCheckSeconds

1

JSP ファイルが変更されたために再コンパイルする必要があるかどうかをチェックする間隔を秒単位で設定する。変更されている場合は、依存関係もチェックされ、再帰的に再ロードされる。

0 に設定した場合は、リクエストされたときにページがチェックされる。-1 に設定した場合、チェックおよび再コンパイルは無効。

precompile

false

true に設定すると、Web アプリケーションのデプロイ (再デプロイ) 時または WebLogic Server の起動時に、修正されたすべての JSP が自動的にプリコンパイルされる。

verbose

true

true に設定すると、デバッグ情報がブラウザ、コマンド プロンプト、および WebLogic Server ログ ファイルに出力される。

workingDir

内部的に生成されるディレクトリ

WebLogic Server が、JSP 用に生成された Java と コンパイル済みのクラス ファイルを保存するディレクトリの名前。

compiler

javac

WebLogic Server のこのインスタンスで使用する JSP コンパイラを設定する。

superclass

weblogic.servlet.jsp.JspBase

JSP のデフォルト スーパークラスをオーバーライドする手段を提供する。 JSP は、この基本クラスから拡張したサーブレット クラスとしてコンパイルされる。

printNulls

true

true に設定すると、文字列「null」が出力される。 printNulls を false に設定すると、「null」ではなく空の文字列が出力される。

 


auth-filter

auth-filter 要素は、認証フィルタ HttpServlet クラスを指定します。

 


container-descriptor

<container-descriptor> 要素は、Web アプリケーション用の汎用パラメータを定義します。

check-auth-on-forward

<check-auth-on-forward/> 要素は、サーブレットまたは JSP から転送されたリクエストの認証を必要とするときに追加します。再認証を必要としない場合、このタグは省略します。 次に例を示します。

<container-descriptor>
<check-auth-on-forward/>
</container-descriptor>

デフォルトの動作は、サーブレット仕様 2.3 のリリースで変更されたことに注意してください。サーブレット 2.3 仕様では、転送されたリクエストの認証は要求されないことが規定されています。

redirect-content-type

redirect-content-type 要素を設定すると、サーブレット コンテナは指定されたタイプを内部リダイレクト用の応答 (ウエルカム ファイルなど) に設定します。

redirect-content

redirect-content 要素を設定すると、サーブレット コンテナは、リダイレクトで使用される、ユーザが読めるデータの値として指定された内容を使用します。

redirect-with-absolute-url

<redirect-with-absolute-url> 要素は、javax.servlet.http.HttpServletResponse.SendRedirect() メソッドでのリダイレクトに相対 URL と絶対 URL のどちらを使用するかを制御します。 プロキシ HTTP サーバを使用しており、URL を非相対リンクに変換したくない場合は、この要素を false に設定します。

デフォルトの動作では、URL が非相対リンクに変換されます。

 


charset-params

<charset-params> 要素は、Unicode 以外の処理でコードセット動作を定義するために使います。

input-charset

<input-charset> 要素を使って、GET データと POST データの読み取りにどの文字セットを使用するのかを定義します。 次に例を示します。

<input-charset>
<resource-path>/foo</resource-path>
<java-charset-name>SJIS</java-charset-name>
</input-charset>

詳細については、HTTP リクエストのエンコーディングの識別を参照してください。

次の表では、<input-charset> 要素内で定義できる要素について説明します。

要素

必須/
省略可能

説明

<resource-path>

必須

リクエストの URL に含まれている場合、<java-charset-name> で指定されている Java 文字セットを使用するように WebLogic Server に知らせるパス。

<java-charset-name>

必須

使用する Java 文字セットを指定する。

charset-mapping

<charset-mapping> 要素を使って、IANA 文字セット名を Java 文字セット名にマップします。 次に例を示します。

<charset-mapping>
<iana-charset-name>Shift-JIS</iana-charset-name>
<java-charset-name>SJIS</java-charset-name>
</charset-mapping>

詳細については、IANA 文字セットの Java 文字セットへのマッピングを参照してください。

次の表では、<charset-mapping> 要素内で定義できる要素について説明します。

要素

必須/
省略可能

説明

<iana-charset-name>

必須

<java-charset-name> 要素で指定された Java 文字セットにマップされる IANA 文字セット名を指定する。

<java-charset-name>

必須

使用する Java 文字セットを指定する。

 


virtual-directory-mapping

virtual-directory-mapping 要素は、特定の種類の要求 (画像要求など) 用に、Web アプリケーションのデフォルト ドキュメント ルート以外のドキュメント ルートを指定するために使用します。Web アプリケーション セット用のすべての画像は単一の場所に格納することができ、それらを使用する各 Web アプリケーションのドキュメント ルートにコピーする必要がありません。要求を受信した場合、仮想ディレクトリが指定されていれば、サーブレット コンテナは要求されたリソースをまず仮想ディレクトリで検索し、次に Web アプリケーションのデフォルト ドキュメント ルートで検索します。これにより、同じドキュメントが両方の場所に存在する場合の優先順位が決まります。

例 :

<virtual-directory-mapping>
     <local-path>c:/usr/gifs</local-path>
     <url-pattern>/images/*</url-pattern>
     <url-pattern>*.jpg</url-pattern>
</virtual-directory-mapping>
<virtual-directory-mapping>
     <local-path>c:/usr/common_jsps.jar</local-path>
     <url-pattern>*.jsp</url-pattern>
</virtual-directory-mapping>

次の表では、virtual-directory-mapping 要素内で定義できる要素について説明します。

要素

必須/
省略可能

説明

<local-path>

必須

ディスク上の物理位置を指定する。

<url-pattern>

必須

マッピングの URL パターンを含む。サーブレット API 仕様のセクション 11.2 で指定されているルールに準拠している必要がある。

 


url-match-map

この要素は、URL パターン マッチング用のクラスを指定するために使用します。WebLogic Server のデフォルト URL マッチ マッピング クラスは J2EE 仕様に基づく weblogic.servlet.utils.URLMatchMap です。また、WebLogic Server には SimpleApacheURLMatchMap も実装されています。これは、url-match-map 要素を使用してプラグインできます。

SimpleApacheURLMatchMap のルールを示します。

*.jws を JWSServlet にマップする場合

http://foo.com/bar.jws/baz は、pathInfo = baz に従って JWSServlet に解決されます。

次の例に示すように、使用する URLMatchMap を weblogic.xml でコンフィグレーションします。

 <url-match-map>
   weblogic.servlet.utils.SimpleApacheURLMatchMap
</url-match-map>

 


preprocessor

preprocessor 要素は、プリプロセッサの宣言的なデータを指定します。

次の表では、preprocessor 要素内で定義できる要素について説明します。

要素

必須/
省略可能

説明

<preprocessor-name>

必須

プリプロセッサの標準名を含む。

<preprocessor-class>

必須

プリプロセッサの完全修飾クラス名を含む。

 


preprocessor-mapping

preprocessor-mapping 要素は、プリプロセッサと URL パターンの間のマッピングを定義します。

次の表では、preprocessor-mapping 要素内で定義できる要素について説明します。

要素

必須/
省略可能

説明

<preprocessor-name>

必須


<url-pattern>

必須


 


security-permission

security-permission 要素は、セキュリティ ポリシー ファイル構文に基づいて単一のセキュリティ パーミッションを指定します。Sun のセキュリティ パーミッション仕様の実装については、次の URL を参照してください。

http://java.sun.com/j2se/1.3/docs/guide/security/PolicyFiles.html#FileSyntax

オプションの codebase および signedBy 句は無視してください。

次に例を示します。

<security-permission-spec>
     grant { permission java.net.SocketPermission "*", "resolve" };
</security-permission-spec>

各値の説明は次のとおりです。

permission java.net.SocketPermission はパーミッション クラス名

"*" は対象名を示す

resolve はアクションを示す

 


context-root

context-root 要素は、このスタンドアロン Web アプリケーションのコンテキスト ルートを定義します。Web アプリケーションがスタンドアロンではなく EAR の一部である場合、EAR の application.xml ファイルにコンテキスト ルートを指定します。application.xml の context-root 設定は、weblogic.xml の context-root 設定に優先します。

この weblogic.xml 要素は、2 フェーズ デプロイメント モデルを使用するデプロイメントに対してのみ有効に機能します。『WebLogic Server アプリケーションの開発』の「2 フェーズ デプロイメント 」を参照してください。

Web アプリケーションのコンテキスト ルートの優先順位は次のとおりです。

  1. application.xml のコンテキスト ルートをチェックし、見つかった場合は Web アプリケーションのコンテキスト ルートとして使用します。

  2. コンテキスト ルートが application.xml で設定されておらず、Web アプリケーションが EAR の一部としてデプロイされる場合、コンテキスト ルートが weblogic.xml に定義されているかどうかをチェックします。見つかった場合は、Web アプリケーションのコンテキスト ルートとして使用します。Web アプリケーションがスタンドアロンとしてデプロイされる場合、application.xml は使用されず、コンテキスト ルートのチェックは weblogic.xml で開始されます。このファイルに定義されていない場合、デフォルトによって URI が使用されます。

  3. コンテキスト ルートが weblogic.xml と application.xml のどちらにも定義されていない場合、コンテキスト パスは URI から推定され、URI に定義されている値から WAR サフィックスを取り除いた名前が付けられます。たとえば、URI が MyWebApp.war の場合は、MyWebApp という名前が付けられます。

  4. 後続の Web アプリケーションのコンテキスト ルート名がすでに使用されているコンテキスト ルート名と重複する場合、重複する名前に数字が付加されます。たとえば、MyWebApp がすでに使用されている場合、別の Web アプリケーションのコンテキスト ルート名は MyWebApp ではなく MyWebApp-1 となり、以後必要な場合は MyWebApp-2 というようになります。

 


init-as

この要素は、サーブレットの init メソッドの <run-as> に相当します。 <init-as> 要素の場合、有効なプリンシパル名を指定する必要があります。 プリンシパル名としてグループやロール名を指定することはできません。

次に例を示します。

  <init-as>
    <servlet-name>FooServlet</servlet-name>
    <principal-name>joe</principal-name>
  </init-as>

 


destroy-as

この要素は、サーブレットの destroy メソッドの <run-as> に相当します。 <destroy-as> 要素の場合、有効なプリンシパル名を指定する必要があります。 プリンシパル名としてグループやロール名を指定することはできません。

次に例を示します。

<destroy-as>

<servlet-name>BarServlet</servlet-name>

<principal-name>bob</principal-name>

</destroy-as>

 

Back to Top Previous Next