―BEA WebLogic Server編―

清水徳雄
日本BEAシステムズ
プロフェッショナル・サービス
2001/4/21
Javaプログラミング
ワンポイントレクチャーについて

   Web Applicationのデプロイメント

今回の内容
1.Web Applicationのデプロイメント・ディスクリプタ
2.
デプロイメント・ディスクリプタのテンプレート

 いよいよBEA WebLogic Server 6.0.1Jをメインに話を進めましょう。第3回目はWebLogic Server 6.0.1JにおけるWeb Applicationのデプロイメント・ディスクリプタを取り上げます。次回の記事でWeb ApplicationについてのTIPSを紹介する予定ですが、その前にデプロイメント・ディスクリプタのおさらいをしておきます。なお、本稿ではWeb Applicationとは何かといった説明や、Web ApplicationにおけるServletやJSPのデプロイ方法などの説明は割愛させていただきますのでご了承ください。

 1.Web Applicationのデプロイメント・ディスクリプタ

  Web ApplicationではEJBと同様にXML形式のデプロイメント・ディスクリプタを使用します。WebLogicでは次の2つのファイルを使用します。

■web.xml
 J2EE Servlet 2.2仕様に準拠したWeb Applicationのデプロイメント・ディスクリプタ。Web Applicationには必須のファイルです。設定する要素がまったくない場合でも、次のように空のルート要素を含むファイルが必要です。

<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
</webapp>

■weblogic.xml
 web.xmlを補完/機能拡張するWebLogic独自のデプロイメント・ディスクリプタ。必要がなければファイル自身存在しなくても構いません。WebLogic 5.1ではweblogic.propertiesweb.xmlで行っていたhttpdやWeb Applicationに関するWebLogic固有の設定はすべてweblogic.xmlに移行されました。

 2.デプロイメント・ディスクリプタのテンプレート

  デプロイメント・ディスクリプタの構造は、Servlet 2.2の仕様書や、製品のlib/weblogic.jarにアーカイブされているweb-jar.dtdweblogic-web-jar.dtdをご覧いただければ分かるのですが、DTD は全体の構造を見渡す目的に適した情報源とはいえません。新たな要素を追加する際に、その順番や構成をDTDでいちいち確認するのも面倒です。そこで、要素の基本的な機能を一通り理解している方々向けに、2つのデプロイメント・ディスクリプタのテンプレートを提供させていただこうと思います。

 これらのテンプレートでは、各デプロイメント・ディスクリプタで使用できるすべての要素をほぼ網羅していますので、不要な部分を適宜削除/コメントアウトしてご使用ください。用途や設定方法が分かりづらい要素に関してはコメントやbodyで情報を補足してあります。右側のコメントの“?*+”は要素の繰り返し回数を示しています。意味はDTDにおける繰り返し回数(occurs)と同じですが、念のため説明しておきます。

 ? 0 回か 1 回だけ記述 (省略可)
 * 0 回以上繰り返して記述 (省略可)
 + 1 回以上繰り返して記述 (省略不可)

 <description>は多くのタグの中で説明を記載する目的で使用できますが、このテンプレートでは一部を除いて省略しています。また、インデント幅は先頭だけ2文字分でそれ以降は4文字分です。

デプロイメント
ディスクリプタ
補足説明

web.xml

 

●DOCTYPE 宣言
製品をインストールするとデフォルトの管理サーバ(Administration Server)のdefault web application が作成されます。このweb.xml (デフォルトでconfig/mydomain/applications/DefaultWebApp_myserver/
WEB-INF/web.xml
)は、DOCTYPE 宣言の公開識別子が “-//Sun Microsystems, Inc.//DTD Web Application 1.2//EN” となっていますが、このバージョン番号 “1.2” は“2.2”の誤りです。

●servlet/JSP定義
ともに<servlet>で宣言します。テンプレートでは別々に記載していますが、両者の違いは <servlet-class>でservletのclassを指定するか、<jsp-file>でJSPのファイル名を指定するかだけです。JSP に関しては、初期化パラメータ<init-param>やURLのマッピング<servlet-mapping>などの設定が必要なければweb.xmlで宣言する必要はありません。

●参照の定義
<security-role-ref><security-role><resource-ref><ejb-ref> は、servlet/JSP がロール、リソース、EJB を参照する際にコード内で使用する名前と、Web Application がデプロイされた環境における実体の名前(レルムやJNDIの登録名)とをマッピングするための仕組みを提供します。
デプロイメント・ディスクリプタでマッピングを行うことで、異なる環境にデプロイする際にコード内の参照名を変更する必要をなくすのが狙いです。なお、<resource-ref>では JDBCデータソースへの参照を定義することがほとんどだと思いますので、データソース用の記述を埋め込んであります。


●セキュリティ設定
<security-constraint><login-config><security-role> に関しては、今後この連載の中で例を示して説明する予定です。

●<taglib>
カスタム・タグと <taglib> についても別の機会に解説する予定です。
weblogic.xml

●<security-role-assignment>
web.xmlの<security-role>で定義したロール名とセキュリティ・レルム内の user/groupとをマッピングします。

●<reference-descriptor>
web.xmlの<resource-ref>で定義したリソース名や<ejb-ref>で定義した EJB名と、実際にJNDIに登録されているデータソースやEJB のバインド名とをマッピングします。

●セッションの設定、JSP の設定
ここに記載した以外にも使えるパラメータが存在します。詳細はマニュアルをご覧ください。ただし、SP1 リリース以降 、USのサイトのマニュアルが頻繁に変更されていますので日本BEAのサイトよりは米国のサイトを参照した方がよいでしょう。
日本BEA:Weblogic.xml デプロイメント記述子の要素
BEA(米国):weblogic.xml Deployment Descriptor Elements


●<session-descriptor>
「WebLogic Serverのセッション管理(応用編)」において脚注で説明したとおり、セッション管理に関する設定はweb.xml、weblogic.xmlでWeb Applicationごとに行うことができます。

●<jsp-descriptor>
WebLogic 5.1では、weblogic.servlet.JSPServletのinitArgsに与えていたパラメータ群です。このテンプレートではすべてdefault値を設定しています。詳細は前記のマニュアルを参照ください。なお、encodingパラメータはその使用は推奨していません。servlet/JSP で日本語を使用する際の注意点は次回説明します。


本稿に関するご質問やご意見は下記のメールアドレスまでお願いします。

info@atmarkit.co.jp

 今後の予定
WebLogic Serverのセッション管理(基礎編)
WebLogic Serverのセッション管理(応用編)
Web Applicationのデプロイメント

Web Application TIPS

Web Applicationのセキュリティ

JSPカスタム・タグ
EJB 2.0 のデプロイメント
WebLogic Server固有のEJB設定項目 (1)
WebLogic Server固有のEJB設定項目 (2)

Javaプログラミング・ワンポイントレクチャー INDEX





Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間