ナビゲーションをスキップ

WebLogic Server Web アプリケーションの開発

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

Web アプリケーションの基本事項

以下の節では、WebLogic Server Web アプリケーションについて概説します。

 


このマニュアルの使い方

Web アプリケーションの開発およびデプロイメントに際しては、このマニュアルと一緒に『WebLogic Server アプリケーションの開発』および『WebLogic Server アプリケーションのデプロイメント』を使用します。Web アプリケーションやその他の J2EE アプリケーションの作成、パッケージ化、および WebLogic Server へのデプロイメントについては、詳細な手順が説明されているこれら 2 冊のマニュアルを主に参照してください。それら 2 冊のマニュアルを補足する Web アプリケーション特有の手順やリファレンスについては、このマニュアル (『WebLogic Server Web アプリケーションの開発』) を参照してください。

 


Web アプリケーションの概要

Web アプリケーションには、サーブレット、JavaServer Pages (JSP)、JSP タグ ライブラリなどのアプリケーションのリソースと、HTML ページや画像ファイルなどの静的リソースが組み込まれています。また、Web アプリケーションは、エンタープライズ JavaBean (EJB) などの外部リソースへのリンクも定義できます。WebLogic Server にデプロイされる Web アプリケーションは、標準の J2EE デプロイメント記述子ファイルと WebLogic 固有のデプロイメント記述子ファイルを使用してそれらのリソースと操作属性を定義します。

JSP と HTTP サーブレットは、WebLogic Server で使用可能なすべてのサービスと API にアクセスできます。これらのサービスには、EJB、Java Database Connectivity (JDBC) を介したデータベース接続、Java Messaging Service (JMS)、XML などがあります。

Web アーカイブ (WAR ファイル) には、Web アプリケーションを構成するファイル (WAR ファイル) が格納されます。WAR ファイルは、1 つまたは複数の WebLogic Server インスタンスにユニットとしてデプロイされます。

WebLogic Server の Web アーカイブには、常に次のファイルが含まれます。

Web アーカイブには、HTML ページまたは XML ページ、およびそれらに付属する画像やマルチメディア ファイルなどのサポート ファイルが含まれている場合もあります。

WAR ファイルは、単独でデプロイすることも、他のアプリケーション コンポーネントと一緒にエンタープライズ アプリケーション アーカイブ (EAR ファイル) にパッケージ化することもできます。単独でデプロイする場合、アーカイブは .war 拡張子で終わる必要があります。EAR ファイルに含めてデプロイする場合、アーカイブは .ear 拡張子で終わる必要があります。

スタンドアロン Web アプリケーションは、エンタープライズ アプリケーションの一部としてパッケージ化およびデプロイすることをお勧めします。これは、アプリケーションの移行、追加、および変更を容易に行うことができるベスト プラクティスです。また、アプリケーションをエンタープライズ アプリケーションの一部としてパッケージ化することにより、分割開発ディレクトリ構造を活用できます。この構造には、従来の単一ディレクトリ構造に比べて多くの利点があります。 『WebLogic Server アプリケーションの開発』の「WebLogic Server アプリケーションの作成」を参照してください。

注意 : ディレクトリを展開形式 (非アーカイブ形式) でデプロイする場合は、ディレクトリに .ear、.jar などの名前を付けないでください。アーカイブ形式の詳細については、「Web アプリケーションのディレクトリ構造」を参照してください。

サーブレット

サーブレットは WebLogic Server で実行される Java クラスであり、クライアントからリクエストを受け取り、そのリクエストを処理して、必要に応じてクライアントに応答を返します。 GenericServlet は、プロトコルに依存せず、他の Java クラスからアクセスされるサービスを実装するために J2EE アプリケーションで使用できます。HttpServlet は、HTTP プロトコルのサポートで GenericServlet を拡張します。HttpServlet は主に、Web ブラウザのリクエストに応えて動的な Web ページを生成するために使用します。

Java Server Pages

Java Server Pages (JSP) は、Java コードを Web ページに埋め込むことができる拡張 HTML で記述された Web ページです。JSP では、HTML に似たタグを使用して、taglib と呼ばれるカスタム Java クラスを呼び出すことができます。WebLogic の appc コンパイラ (weblogic.appc) では、JSP の生成と記述子の検証が行われます。

サーバでのコンパイルを避けるために、あらかじめ JSP をコンパイルし、サーブレット クラスを Web アーカイブにパッケージ化することもできます。サーブレットおよび JSP では、アプリケーションと共にデプロイするヘルパー クラスがさらに必要な場合があります。

Web アプリケーションのディレクトリ構造

Web アプリケーションは、J2EE 仕様で定義されている標準ディレクトリ構造を採用しています。Web アプリケーションは、このディレクトリ構造を使用するファイルの集合としてデプロイする (展開ディレクトリ形式) か、WAR ファイルと呼ばれるアーカイブ ファイルとしてデプロイできます。WAR ファイルは、エンタープライズ アプリケーションの一部としてパッケージ化およびデプロイすることをお勧めします。これは、アプリケーションの移行、追加、および変更を容易に行うことができるベスト プラクティスです。また、Web アプリケーションをエンタープライズ アプリケーションの一部としてパッケージ化することにより、分割開発ディレクトリ構造を活用できます。この構造には、従来の単一ディレクトリ構造に比べて多くの利点があります。『WebLogic Server アプリケーションの開発』の「WebLogic Server アプリケーションの作成」を参照してください。

Web アプリケーション コンポーネントは、jar コマンドを使って作成される WAR ファイルをステージングするために各ディレクトリにアセンブルされます。HTML ページ、JSP ページといったこれらのコンポーネントから参照される Java クラス以外のファイルは、ステージング ディレクトリの最上位から順にアクセスされます。

WEB-INF ディレクトリには、Web アプリケーションのデプロイメント記述子 (web.xml および weblogic.xml) と、コンパイル済み Java クラスおよびライブラリ JAR ファイルを格納するための 2 つのサブディレクトリが格納されます。サブディレクトリの名前は classes と lib です。JSP taglib は、ステージング ディレクトリの最上位の WEB-INF ディレクトリに格納されます。Java クラスには、サーブレット、ヘルパー クラス、およびコンパイル済みの JSP (必要に応じて) などがあります。

Web アプリケーションに属するすべてのサーブレット、クラス、静的ファイル、およびその他のリソースは、ディレクトリ階層に基づいて配置されます。

DefaultWebApp/

このディレクトリ (Web アプリケーションのドキュメント ルート) には、HTML ファイルなどの静的ファイルと JSP ファイルを配置します。WebLogic Server のデフォルトでは、このディレクトリの名前は DefaultWebApp で、user_domains/mydomain/applications の下に置かれます。

(Web アプリケーションをデフォルトの Web アプリケーションにするには、weblogic.xml デプロイメント記述子ファイルで context-root を "/" に設定する必要があります)

DefaultWebApp/WEB-INF/web.xml

Web アプリケーションをコンフィグレーションする Web アプリケーション デプロイメント記述子です。

DefaultWebApp/WEB-INF/weblogic.xml

WebLogic 固有のデプロイメント記述子ファイルでは、web.xml ファイルで指定されたリソースが WebLogic Server のどのリソースにどのようにマップされるのかを定義します。またこのファイルは、JSP および HTTP セッション属性を定義するために使用されます。

DefaultWebApp/WEB-INF/classes

HTTP サーブレットやユーティリティ クラスなどのサーバサイド クラスが格納されます。

DefaultWebApp/WEB-INF/lib

JSP タグ ライブラリなど、Web アプリケーションによって使用される JAR ファイルが格納されます。

ステージングが終了したら、jar コマンドを使用してディレクトリ全体を WAR ファイルにまとめます。WAR ファイルは、それだけでデプロイすることも、他の Web アプリケーション、EJB コンポーネント、WebLogic Server コンポーネントといった他のアプリケーション コンポーネントと一緒にエンタープライズ アプリケーションの一部としてデプロイする (推奨) こともできます。

JSP ページと HTTP サーブレットは、WebLogic Server で使用可能なすべてのサービスと API にアクセスできます。これらのサービスには、EJB、Java Database Connectivity (JDBC) を介したデータベース接続、JavaMessaging Service (JMS)、XML などがあります。

次に Web アプリケーションのディレクトリ構造の例を示します。ここでは、myWebApp/ がステージング ディレクトリです。

コード リスト 1-1Web アプリケーションのディレクトリ構造

myWebApp/
	WEB-INF/
web.xml
weblogic.xml
lib/
MyLib.jar
classes/
MyPackage/
MyServlet.class
	index.html
	index.jsp

 


Web アプリケーション作成の主な手順

ここでは、分割開発ディレクトリ構造を使用し、エンタープライズ アプリケーションの一部として WebLogic Server アプリケーションを作成する際の手順を示します。『WebLogic Server アプリケーションの開発』の「WebLogic Server アプリケーションの作成」を参照してください。

WebLogic Server に付属の開発者向けツールを使用して Web アプリケーションを作成およびコンフィグレーションできます。「Web アプリケーション開発者向けツール」を参照してください。

手順 1 : エンタープライズ アプリケーション ラッパーの作成

  1. ルート EAR ファイルのディレクトリを作成します。
  2. \src\myEAR\

  3. 次のように環境を設定します。
  4. 次のように、\src\myEAR\ ディレクトリにエンタープライズ アプリケーションをパッケージ化します。
    1. エンタープライズ アプリケーション記述子 (application.xml および weblogic-application.xml) を META-INF\ ディレクトリに入れます。『WebLogic Server アプリケーションの開発』の「エンタープライズ アプリケーションのデプロイメント記述子の要素」を参照してください。
    2. 次のコマンドを実行すると、DDInit Java ユーティリティを使用してエンタープライズ アプリケーション記述子を自動生成できます。

      java weblogic.marathon.ddinit.EarInit \myEAR

      DDInit の詳細については、「WebLogic Server Java ユーティリティの使い方」を参照してください。

    3. 必要に応じてデプロイメント記述子を編集し、エンタープライズ アプリケーションの動作を微調整します。「デプロイメント記述子」を参照してください。
    4. 次の場所にエンタープライズ アプリケーションの .jar ファイルを置きます。
    5. \src\myEAR\APP-INF\lib\

手順 2 : Web アプリケーションの作成

  1. EAR ファイルのルートに Web アプリケーションのディレクトリを作成します。
  2. \src\myEAR\myWebApp

  3. 次のように、\src\myEAR\myWebApp\ ディレクトリに Web アプリケーションをパッケージ化します。
    1. Web アプリケーション記述子 (web.xml および weblogic.xml) を \src\myEAR\myWebApp\WEB-INF\ ディレクトリに入れます。「web.xml デプロイメント記述子の要素」および「weblogic.xml デプロイメント記述子の要素」を参照してください。
    2. 次のコマンドを実行すると、DDInit Java ユーティリティを使用して Web アプリケーション記述子を自動生成できます。

      java weblogic.marathon.ddinit.WebInit \myEAR\myWebApp

      DDInit の詳細については、「WebLogic Server Java ユーティリティの使い方」を参照してください。

    3. 必要に応じてデプロイメント記述子を編集し、エンタープライズ アプリケーションの動作を微調整します。「デプロイメント記述子」を参照してください。
    4. すべての HTML ファイル、JSP、イメージ、その他 Web アプリケーションによって参照されるあらゆるファイルを、Web アプリケーションのルートに置きます。
    5. \src\myEAR\myWebApp\images\myimage.jpg

      \src\myEAR\myWebApp\login.jsp

      \src\myEAR\myWebApp\index.html

    6. 次の場所に、Web アプリケーションの Java ソース ファイル (サーブレット、タグ ライブラリ、サーブレットまたはタグ ライブラリによって参照されるその他のクラス) を置きます。
    7. \src\myEAR\myWebApp\WEB-INF\src\

手順 3 : build.xml ファイルの作成

ディレクトリ構造を設定したら、weblogic.BuildXMLGen ユーティリティを使用して build.xml ファイルを作成します。『WebLogic Server アプリケーションの開発』の「WebLogic Server アプリケーションの作成」を参照してください。

手順 4 : 分割開発ディレクトリ構造における Ant タスクの実行

  1. wlcompile Ant タスクを実行して javac コンパイラを呼び出します。これにより、Web アプリケーションの Java コンポーネントが出力ディレクトリ /build/myEAR/WEB-INF/classes にコンパイルされます。『WebLogic Server アプリケーションの開発』の「WebLogic Server アプリケーションの作成」を参照してください。
  2. wlappc Ant タスクを実行して appc コンパイラを起動します。これにより、デプロイメントのための JSP およびコンテナ固有の EJB クラスがすべてコンパイルされます。『WebLogic Server アプリケーションの開発』の「WebLogic Server アプリケーションの作成」を参照してください。「appc コンパイラ」も参照してください。
  3. wldeploy Ant タスクを実行して、Web アプリケーションをアーカイブされた、または展開された EAR の一部として、WebLogic Server にデプロイします。 『WebLogic Server アプリケーションのデプロイメント』の「デプロイメント ツールのリファレンス」を参照してください。
  4. プロダクション環境 (開発環境でなく) の場合は、wlpackage Ant タスクを実行して Web アプリケーションをアーカイブされた、または展開された EAR の一部としてパッケージ化します。『WebLogic Server アプリケーションの開発』の「WebLogic Server アプリケーションの作成」を参照してください。
  5. 注意 : wlpackage Ant タスクは、Java ソース ファイルのコンパイルされたバージョンをビルド ディレクトリ (たとえば /build/myEAR/myWebApp/classes) に格納します。

 


URL と Web アプリケーション

クライアントが Web アプリケーションにアクセスするために使用する URL は、次のパターンで作成します。

http://hoststring/ContextPath/servletPath/pathInfo

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

hoststring

仮想ホストにマップされるホスト名または hostname:portNumber

ContextPath

Web アプリケーションの名前

servletPath

servletPath にマップされるサーブレット

pathInfo

URL の残りの部分 (通常はファイル名)

仮想ホスティングを使用している場合、URL の hoststring の部分を仮想ホスト名に置き換えることができます。

 


Web アプリケーション開発者向けツール

BEA では、Web アプリケーションの作成とコンフィグレーションを支援するツールを提供しています。

WebLogic Builder

WebLogic Builder は、J2EE アプリケーション モジュールをアセンブルし、デプロイメント記述子を作成および編集し、WebLogic Server にそれをデプロイするための、グラフィカル ツールです。

WebLogic Builder は、アプリケーションのデプロイメント記述子 XML ファイルを編集するためのグラフィカルな環境です。WebLogic Builder では、これらの XML ファイルをグラフィカルに編集しながら参照できるので、テキストによる編集は必要ありません。

WebLogic Builder では、次の開発タスクを行うことができます。

WebLogic Builder の詳細については、『WebLogic Builder オンライン ヘルプ』を参照してください。

スケルトン デプロイメント記述子を作成する ANT タスク

スケルトン デプロイメント記述子を作成するときに、WebLogic Ant ユーティリティを使用できます。ANT ユーティリティは WebLogic Server 配布キットと共に出荷されている Java クラスです。ANT タスクによって、Web アプリケーションを含むディレクトリが調べられ、その Web アプリケーションで検出されたファイルを基にデプロイメント記述子が作成されます。ANT ユーティリティは、個別の Web アプリケーションに必要なコンフィグレーションやマッピングに関する情報をすべて備えているわけではないので、ANT ユーティリティによって作成されるスケルトン デプロイメント記述子は不完全なものです。ANT ユーティリティがスケルトン デプロイメント記述子を作成した後で、テキスト エディタ、XML エディタ、または Administration Console を使ってデプロイメント記述子を編集し、Web アプリケーションのコンフィグレーションを完全なものにしてください。

デプロイメント記述子を作成するための Ant ユーティリティの使用方法の詳細については、『WebLogic Server アプリケーションのデプロイメント』の「デプロイメント ツールのリファレンス」を参照してください。

XML エディタ

XML ファイルを作成および編集するには、dev2dev にある BEA XML エディタや XMLSpy などの DTD 検証機能付き XML エディタを使用できます (このバージョンの WebLogic Server には XMLSpy の評価版が付属しています)。BEA dev2dev Online (http://www.beasys.co.jp/dev2dev/index.html) を参照してください。

appc コンパイラ

appc コンパイラは、コンパイルによって、デプロイメント用の J2EE EAR ファイル、EJB JAR ファイル、および Web アプリケーション WAR ファイルを生成します。また、記述子が、個々のモジュール レベルとアプリケーション レベルの両方で現在の仕様に準拠しているかどうかも検証します。アプリケーション レベルのチェックには、アプリケーション レベルのデプロイメント記述子と個々のモジュールとのチェックだけでなく、モジュール間の検証チェックも含まれます。記述子について警告またはエラーが検出された場合は、appc コンパイラによって報告されます。最終的には、appc コンパイラがすべての関連モジュールをコンパイルし、WebLogic Server にデプロイできる EAR ファイルを生成します。

appc の構文

appc を実行するには、次の構文を使用します。

prompt>java weblogic.appc [options] <ear, jar, or war file or directory>

たとえば、myWebApp.war の記述子を検証し、jsp ファイルをコンパイルして、生成されたクラス ファイルを使用して WAR ファイルを更新するには、次のコマンドを実行します。

java weblogic.appc -keepgenerated myWebApp.war

appc のオプション

appc オプションのリストについては、『WebLogic Server アプリケーションの開発』の「Java コードのコンパイル」を参照してください。

wlappc Ant タスク

次のように wlappc Ant タスクを使用して appc コンパイラを起動します。

<wlappc source="${dest.dir}" /> 

wlappc オプションのリストについては、『WebLogic Server アプリケーションの開発』の「Java コードのコンパイル」を参照してください。

 


Web アプリケーションのセキュリティ

Web アプリケーションにセキュリティを設定するには、Web アプリケーション内の特定の URL パターンへのアクセスを制限するか、またはサーブレット コードをプログラミングすることでセキュリティの呼び出しを使用します。

実行時には、ユーザ名とパスワードが、Web アプリケーションに該当するセキュリティ レルムを使用して認証されます。
web.xml または、Web アプリケーションの Administration Console を使用して作成された外部ポリシーでコンフィグレーションされているセキュリティ制約に従って、認可が確認されます。Administration Console を使用したポリシーの作成方法については、オンライン ヘルプを参照してください。

実行時には、WebLogic Server のアクティブなセキュリティ レルムによって、Web アプリケーション セキュリティ制約が指定の Web アプリケーション リソースに適用されます。セキュリティ レルムは複数の仮想ホスト間で共有されることに注意してください。

Web アプリケーションのセキュリティ コンフィグレーションの詳しい手順や例については、『WebLogic リソースのセキュリティ』を参照してください。WebLogic セキュリティの詳細については、『WebLogic Security プログラマーズ ガイド』を参照してください。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次