![]() ![]() ![]() ![]() |
このチュートリアルでは、MedRec Web アプリケーションのリソースおよび操作属性を定義するデプロイメント記述子ファイルについて説明します。
ほとんどの WebLogic Server Web アプリケーションと同様に、MedRec の各 Web アプリケーションでは web.xml
と weblogic.xml
という 2 つのデプロイメント記述子ファイルを使用します。これらのファイルは、WebLogic Server Web アプリケーションのディレクトリ構造の一部である WEB-INF
フォルダ内にあります。
web.xml
デプロイメント記述子ファイルは、Web アプリケーションのプロパティを設定する J2EE 標準の XML ドキュメントです。これらのプロパティは Servlet 2.4 デプロイメント記述子の XML スキーマで定義されています。
weblogic.xml
デプロイメント記述子ファイルは、Web アプリケーションの WebLogic Server 固有のプロパティを定義する XML ドキュメントです。これらのプロパティは http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd の XML スキーマで定義されています。
MedRec の Web アプリケーションは Struts を使用して開発されます。Struts は Apache Struts で開発されたオープン ソースの Web フレームワークです。Struts フレームワークには struts-config.xml
という独自のコンフィグレーション ファイルがあり、Web アプリケーション デプロイメント記述子と同じディレクトリ (WEB-INF
) に格納されています。このコンフィグレーション ファイルは Struts 1.2 DTD で定義されています。このチュートリアルでは Struts フレームワークについて説明しません。詳細については、Apache Struts のサイトを参照してください。
このチュートリアルを始める前に、以下のことを行ってください。
次の手順を行うと、web.xml
ファイルと weblogic.xml
ファイルの内容を確認できます。
この節では、(medrecEar
エンタープライズ アプリケーションの) mainWebApp
Web アプリケーションの web.xml
ファイルで、mainWebApp
のリソースがどのようにコンフィグレーションされているかを調べます。mainWebApp
は MedRec の HTTP リクエストに応答し、HTTP 応答を作成するか、リクエストを他の Web コンポーネントに転送します。
web.xml
では、Web アプリケーションの以下の属性を定義できます。
mainWebApp
をコンフィグレーションする web.xml
ファイルを開きます。prompt> notepad c:\medrec_tutorial\src\medrecEar\mainWebApp\WEB-INF\web.xml
<?xml version='1.0' encoding='UTF-8"?>
web-app
要素に挿入します。 <web-app xmlns:j2ee="http://java.sun.com/xml/ns/j2ee">
....
</web-app>
web.xml
のサーブレットの登録を確認します。servlet
要素とその servlet-class
属性は、サーブレットの名前と、そのサーブレットを実行するコンパイル済みクラスの場所を設定します。
次の行は、action
という名前のサーブレットを指定し、それを指定のクラスに関連付けます。
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
init-param
属性は、servlet
要素 (ここでは前の手順で定義したサーブレット) の属性です。サーブレットは、起動されたときにその init-param
値を読み込みます。 <init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
servlet-mapping
要素は、MedRec アプリケーションがサーブレットを起動する方法を決定します。 <servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
welcome-file-list
要素は、Web アプリケーションのウェルカム ファイルを定義します。 <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
jsp-config
要素の taglib
子要素は、アプリケーションで使用できるタグ ライブラリを定義します。<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
filter
や filter-mapping
など、web.xml ファイルの他の要素の説明については、『WebLogic Server Web アプリケーション、サーブレット、JSP の開発』の「web.xml デプロイメント記述子の要素」を参照してください。
この節では、physicianEar
アプリケーションの physicianWebApp
をコンフィグレーションする weblogic.xml
ファイルの内容を調べます。医師および看護師がこの Physician Web アプリケーションにログインし、患者のプロファイルを検索およびアクセスしたり、患者の医療記録を作成および参照したり、患者に薬を処方したりします。
WebLogic Server Web アプリケーションの weblogic.xml
ファイルには数多くのプロパティがありますが、主要なものとしては次のプロパティを設定できます。
physicianWebApp
をコンフィグレーションする weblogic.xml
ファイルを開きます。prompt> notepad c:\medrec_tutorial\src\physicianEar\physicianWebApp\WEB-INF\weblogic.xml
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">
この URL は、Web アプリケーションの現在の WebLogic Server 9.2 XML スキーマが格納されているディレクトリです。
weblogic.xml
内の要素と属性は、weblogic.xml
の各インスタンスをオープンおよびクローズする weblogic-web-app
要素に挿入されるメンバーです。 <weblogic-web-app>
....
</weblogic-web-app>
session-descriptor
要素には、Web アプリケーションのサーブレット セッション用のセッション パラメータが含まれます。子要素の名前は weblogic-web-app.xsd
で定義されています。同じ session-descriptor
要素内で子要素の値を設定できます。<session-descriptor>
<timeout-secs>600</timeout-secs>
<invalidation-interval-secs>60</invalidation-interval-secs>
<persistent-store-type>
replicated_if_clustered
</persistent-store-type>
</session-descriptor>
timeout-secs
子要素は、セッションがタイムアウトになるまでのサーバの待機時間の秒数を設定します。
2 番目の子要素 invalidation-interval-secs
はパフォーマンスに関連する設定で、セッションが無効かどうかの確認をサーバが待機してタイムアウトになるまでの秒数を指定します。
3 番目の子要素 persistent-store-type
に割り当てられる値は、サーブレット セッションの永続ストア方式を決定します。現在の値の replicated_if_clustered
は、Web アプリケーションがクラスタにデプロイされている場合、このサーバが属するクラスタの値セットに応じてこのサーバのセッションが格納されることを示しています。サーバ コンフィグレーションがクラスタ化されていない場合、サーブレット セッションはデフォルトで memory
PersistentStoreType
に設定され、セッションは永続的に格納されません。
virtual-directory-mapping
要素は、HTTP 画像リクエストを処理するときにサーブレットが最初に確認する場所を設定します。子要素の local-path
と url-pattern
は、受信するリクエストの URL パターンを物理的な場所にマップします。 <virtual-directory-mapping>
<local-path>c:/medrec_tutorial/src/common/web</local-path>
<url-pattern>images/*</url-pattern>
</virtual-directory-mapping>
weblogic.xml
ファイル内の context-root
要素は、Web アプリケーションのコンテキスト ルート ディレクトリを設定します。コンテキスト ルートは、サーバのベース URL を基準にした相対パスにある Web アプリケーションの基本パスです。たとえば、MedRecServer のベース URL は http://
host
:7101
で、Web アプリケーションのコンテキスト ルートは physician
です。ユーザは、http://
host
:7101/physician
を基準にした相対パスにある physician
Web アプリケーションのコンポーネントにアクセスします。
physician
の設定は、ユーザが physicianWebApp へのアクセスを明確に要求したときにアクセスすることを示しています。
<context-root>physician</context-root>
weblogic.xml
ファイルで使用可能なすべての要素の説明については、『WebLogic Server Web アプリケーション、サーブレット、JSP の開発』の「weblogic.xml デプロイメント記述子の要素」を参照してください。
MedRec アプリケーションには 5 つの Web アプリケーションがあります。
これらの Web アプリケーションのリソースおよび属性は、デプロイメント記述子ファイルで定義されています。このチュートリアルでは、これらのデプロイメント記述子、特に web.xml
(標準の J2EE Web アプリケーションのデプロイメント記述子ファイル) および weblogic.xml
(WebLogic Server 固有の Web アプリケーションのデプロイメント記述子ファイル) の機能について説明します。
デプロイメント記述子ファイルは、MedRec のアプリケーション、EJB、Web サービス、および Web アプリケーションのプロパティをコンフィグレーションします。
たとえば、physicianEar
(physicianWebApp
が属するアプリケーション) には、セッション EJB コンポーネントの physSessionEJBs
も含まれます。physSessionEJBs
のデプロイメント記述子ファイルは、標準の J2EE EJB デプロイメント記述子ファイル ejb-jar.xml
と WebLogic Server 固有の EJB デプロイメント記述子ファイル weblogic-ejb-jar.xml
で、C:\medrec_tutorial\build\physicianEar\physSessionEjbs\META-INF
ディレクトリに生成されます。
同様に、physicianEar
には PhysicianWebServices
という Web サービスが含まれています。そのデプロイメント記述子ファイルは C:\medrec_tutorial\build\physicianEar\PhysicianWebServices\WEB-INF
ディレクトリに生成されます。Web サービスのデプロイメント記述子には、J2EE 標準の webservices.xml
と WebLogic 固有の weblogic-webservices.xml
があります。PhysicianWebServices
は EJB を使用して実装されているため、META-INF ディレクトリには EJB 関連のデプロイメント記述子ファイルも格納されています。
メインの MedRec アプリケーションの medrecEar
は、標準の J2EE アプリケーションのデプロイメント記述子ファイル (C:\medrec_tutorial\src\medrecEar\META-INF
にある application.xml
) でコンフィグレーションされます。
EJB、Web サービス、およびアプリケーションのデプロイメント記述子ファイルと、それらが参照する XML スキーマ ファイルを調べてみてください。
![]() ![]() ![]() |