WebLogic Server Web アプリケーションの開発
![]() |
![]() |
![]() |
![]() |
この章では、weblogic.xml
ファイルのルート要素 <weblogic-web-app>
に定義するデプロイメント記述子の要素について説明します。
weblogic.xml
ファイルの DOCTYPE ヘッダは次のようになっています。
<!DOCTYPE weblogic-web-app PUBLIC
"-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd で weblogic.xml
のドキュメント タイプ定義 (DTD) を参照することもできます。
description 要素は、Web アプリケーションの説明文です。
weblogic-version
要素は、この Web アプリケーションをデプロイする WebLogic Server のバージョンを示します。この要素は参照用で、現在 WebLogic Server では使用されていません。
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
要素内で定義できる要素について説明します。
|
||
|
注意 : security-role-assignment 要素およびその下位要素を定義していない場合は、Web アプリケーション コンテナによってロール名がプリンシパル名として暗黙的にマップされ、ログに警告メッセージが出力されます。マッピングが定義されていないと、EJB コンテナはモジュールをデプロイしません。
以下に、ロール名が「role_xyz」の場合の使用例を示します。
run-as-role-assignment 要素は、web.xml の run-as ロール名 (servlet 要素の下位要素) をシステムの有効なユーザ名にマップします。この値は、servlet-descriptor の run-as-principal-name 要素によって任意のサーブレットについてオーバーライドできます。ロール名の run-as-role-assignment がない場合は、security-role-assignment に定義されている最初の principal-name を Web アプリケーション コンテナが選択します。
次の表では、run-as-role-assignment
要素内で定義できる要素について説明します。
reference-descriptor
要素は、Web アプリケーションで使用される名前をサーバ リソースの JNDI 名にマップします。reference-description
要素には次の 2 つの要素が含まれています。resource-description
要素は DataSource などのリソースをその JNDI 名にマップします。ejb-reference
要素は EJB をその JNDI 名にマップします。
resource-env-description
要素は、ejb-jar.xml
デプロイメント記述子で宣言された resource-env-ref
を、それが表しているサーバ リソースの JNDI 名にマップします。
次の表では、resource-env-description
要素内で定義できる要素について説明します。
resource-description
要素は、サーバ リソースの JNDI 名を、WebLogic Server の EJB リソースの参照にマップするために使用されます。
次の表では、resource-description
要素内で定義できる要素について説明します。
次の表では、ejb-reference-description
要素内で定義できる要素について説明します。
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
要素内で定義できるセッション属性の名前と値について説明します。
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
jsp-descriptor
要素は、JSP の属性名と値を定義します。属性は名前と値の組み合わせで定義します。次の例では、complieCommand
属性のコンフィグレーション方法を示します。この例のパターンを使って、すべての JSP コンフィグレーションを入力してください。
<jsp-descriptor>
<jsp-param>
<param-name>
compileCommand
</param-name>
<param-value>
sj
</param-value>
</jsp-param>
</jsp-descriptor>
次の表では、jsp-descriptor
要素内で定義できる要素について説明します。
次の表では、<jsp-param>
要素内で定義できる属性の名前と値について説明します。
|
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
auth-filter 要素は、認証フィルタの HttpServlet クラスを指定します。
<container-descriptor>
要素は、Web アプリケーション用の汎用属性を定義します。
<check-auth-on-forward/>
要素は、サーブレットまたは JSP から転送されたリクエストの認証を必要とするときに追加します。再認証を必要としない場合、このタグは省略します。次に例を示します。
<container-descriptor>
<check-auth-on-forward/>
</container-descriptor>
デフォルトの動作は、サーブレット仕様 2.3 のリリースで変更されたことに注意してください。サーブレット 2.3 仕様では、転送されたリクエストの認証は要求されないことが規定されています。
<redirect-with-absolute-url>
要素は、javax.servlet.http.HttpServletResponse.SendRedirect()
メソッドでのリダイレクトに相対 URL と絶対 URL のどちらを使用するかを制御します。プロキシ HTTP サーバを使用しており、URL を非相対リンクに変換したくない場合は、この要素を false
に設定します。
デフォルトの動作では、URL が非相対リンクに変換されます。
<index-directory-enabled> 要素は、適切なインデックス ファイルが見つからない場合に HTML ディレクトリのリストを自動的に生成するかどうかを制御します。
デフォルト値は false
です (ディレクトリは生成されません)。値は true
または false
です。
<index-directory-sort-by> 要素は、weblogic.servlet.FileServlet で生成されるディレクトリ リストのソート順序を定義します。有効な sort-by 値は、NAME、LAST_MODIFIED、および SIZE です。デフォルトの sort-by 値は NAME です。
<servlet-reload-check-secs> 要素は、サーブレットが変更されたかどうかを WebLogic Server がチェックして、変更されていた場合に再ロードするかどうかを定義します。-1 という値を指定すると、サーバはサーブレットのチェックを行いません。0 を指定すると、サーバはサーブレットを常時チェックします。デフォルトでは 1 秒ごとにチェックします。
コンソールで指定する値は、手動で設定する値よりも常に優先されます。
<single-threaded-servlet-pool-size> 要素は、SingleThreadMode インスタンス プールで使用するプールのサイズを定義します。デフォルト値は 5 です。
<session-monitoring-enabled> 要素を true に設定すると、セッションの実行時 MBean を作成できます。false (デフォルト値) に設定すると、実行時 MBean は作成されません。コンソールで指定する値は、手動で設定する値よりも優先されます。
<save-sessions-enabled> 要素は、再デプロイまたはアンデプロイ時にセッション データをクリーンアップするかどうかを制御します。これはメモリとレプリケート セッションに影響します。値を true に設定すると、セッション データは保存されます。false に設定すると、Web アプリケーションが再デプロイまたはアンデプロイされるときにセッション データは破棄されます。デフォルトは false です。
<prefer-web-inf-classes> 要素を true に設定すると、Web アプリケーションの WEB-INF ディレクトリ内のクラスが、アプリケーションまたはシステム クラスローダにロードされるクラスよりも優先してロードされます。デフォルト値は false です。コンソールで指定する値は、手動で設定する値よりも優先されます。
<default-mime-type> 要素のデフォルト値は null です。この要素を使用すると、拡張がマップされていない content-type のデフォルトの MIME タイプを指定できます。
<retain-original-url> 要素を true に設定すると、認証 URL に転送される前に要求していた元の URL に HTTP を保持できます。
認証 URL を使用してログインに成功すると、本来要求していた URL に戻されます。
<charset-params> 要素は、Unicode 以外の処理でコード セット動作を定義するために使います。次に例を示します。
<charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name>UTF-8</java-charset-name>
</input-charset>
</charset-params>
<input-charset>
要素を使って、GET
データと POST
データの読み取りにどの文字セットを使用するのかを定義します。次に例を示します。
<input-charset>
<resource-path>/foo</resource-path>
<java-charset-name>SJIS</java-charset-name>
</input-charset>
詳細については、「サーブレット、コンテキスト リスナ、フィルタのロード」を参照してください。
次の表では、<input-charset>
要素内で定義できる要素について説明します。
<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>
要素内で定義できる要素について説明します。
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 要素内で定義できる要素について説明します。
仮想ディレクトリ マッピングの WebLogic Server 実装では、マッピングの url-pattern に一致するディレクトリが必要です。上記の画像の例であれば、c:/usr/gifs/images に images というディレクトリを作成する必要があります。これにより、サーブレット コンテナが images ディレクトリにある複数の Web アプリケーションの画像を見つけることが可能になります。
この要素は、URL パターン マッチング用のクラスを指定するために使用します。WebLogic Server のデフォルト URL マッチ マッピング クラスは J2EE 仕様に基づく weblogic.servlet.utils.URLMatchMap です。また、WebLogic Server には SimpleApacheURLMatchMap も実装されています。これは、url-match-map 要素を使用してプラグインできます。
SimpleApacheURLMatchMap のルールを示します。
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-mapping 要素では、プリプロセッサと URL パターンの間のマッピングを定義します。
次の表では、preprocessor-mapping 要素内で定義できる要素について説明します。
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 はパーミッション クラス名。
context-root 要素は、このスタンドアロン Web アプリケーションのコンテキスト ルートを定義します。Web アプリケーションがスタンドアロンではなく EAR の一部である場合、EAR の application.xml ファイルにコンテキスト ルートを指定します。application.xml の context-root 設定は、weblogic.xml の context-root 設定に優先します。
この weblogic.xml 要素は、2 フェーズ デプロイメント モデルを使用するデプロイメントに対してのみ有効に機能します。『WebLogic Server アプリケーションのデプロイメント』の「2 フェーズ デプロイメント プロトコル」を参照してください。
Web アプリケーションのコンテキスト ルートの優先順位は次のとおりです。
wl-dispatch-policy 要素を使用して、実行キュー名を指定し、Web アプリケーションをコンフィグレーションされた実行キューに割り当てます。
servlet-descriptor 要素を使用して、サーブレット固有の要素を集約します。
次の表では、servlet-descriptor 要素内で定義できる要素について説明します。
これは、サーブレットの init メソッドの <run-as> と同じです。
<init-as>
<servlet-name>FooServlet</servlet-name>
<principal-name>joe</principal-name>
</init-as>
これは、サーブレットの destroy メソッドの <run-as> と同じです。
<servlet-name>BarServlet</servlet-name>
![]() |
![]() |
![]() |