Avitek Medical Record 開発チュートリアル

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

 


MedRec アプリケーションの開発

 


チュートリアル 8 : Web アプリケーションのデプロイメント記述子の段階的な説明

このチュートリアルでは、MedRec Web アプリケーションのリソースおよび操作属性を定義するデプロイメント記述子ファイルについて説明します。

ほとんどの WebLogic Server Web アプリケーションと同様に、MedRec の各 Web アプリケーションでは web.xmlweblogic.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 ファイルの内容を確認できます。

手順 1 : web.xml ファイルを検査する

この節では、(medrecEar エンタープライズ アプリケーションの) mainWebApp Web アプリケーションの web.xml ファイルで、mainWebApp のリソースがどのようにコンフィグレーションされているかを調べます。mainWebApp は MedRec の HTTP リクエストに応答し、HTTP 応答を作成するか、リクエストを他の Web コンポーネントに転送します。

web.xml では、Web アプリケーションの以下の属性を定義できます。

  1. テキスト エディタで、mainWebApp をコンフィグレーションする web.xml ファイルを開きます。
  2. prompt> notepad c:\medrec_tutorial\src\medrecEar\mainWebApp\WEB-INF\web.xml
  3. ファイルの先頭にある必須の要素に注目します。バージョンとエンコーディングが設定されています。
  4. <?xml version='1.0' encoding='UTF-8"?>
  5. 以降の手順で説明する要素は、変更対象の web-app 要素に挿入します。
  6. <web-app xmlns:j2ee="http://java.sun.com/xml/ns/j2ee">
    ....
    </web-app>
  7. web.xml のサーブレットの登録を確認します。servlet 要素とその servlet-class 属性は、サーブレットの名前と、そのサーブレットを実行するコンパイル済みクラスの場所を設定します。
  8. 次の行は、action という名前のサーブレットを指定し、それを指定のクラスに関連付けます。

    <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>
    org.apache.struts.action.ActionServlet
    </servlet-class>
  9. init-param 属性は、servlet 要素 (ここでは前の手順で定義したサーブレット) の属性です。サーブレットは、起動されたときにその init-param 値を読み込みます。
  10. <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
  11. servlet-mapping 要素は、MedRec アプリケーションがサーブレットを起動する方法を決定します。
  12. <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
  13. welcome-file-list 要素は、Web アプリケーションのウェルカム ファイルを定義します。
  14. <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
  15. jsp-config 要素の taglib 子要素は、アプリケーションで使用できるタグ ライブラリを定義します。
  16. <taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
    </taglib>

filterfilter-mapping など、web.xml ファイルの他の要素の説明については、『WebLogic Server Web アプリケーション、サーブレット、JSP の開発』の「web.xml デプロイメント記述子の要素」を参照してください。

手順 2 : weblogic.xml ファイルを検査する

この節では、physicianEar アプリケーションの physicianWebApp をコンフィグレーションする weblogic.xml ファイルの内容を調べます。医師および看護師がこの Physician Web アプリケーションにログインし、患者のプロファイルを検索およびアクセスしたり、患者の医療記録を作成および参照したり、患者に薬を処方したりします。

WebLogic Server Web アプリケーションの weblogic.xml ファイルには数多くのプロパティがありますが、主要なものとしては次のプロパティを設定できます。

  1. テキスト エディタで、physicianWebApp をコンフィグレーションする weblogic.xml ファイルを開きます。
  2. prompt> notepad  c:\medrec_tutorial\src\physicianEar\physicianWebApp\WEB-INF\weblogic.xml
  3. エンコーディングを設定し、XML スキーマ ファイルの場所を参照している先頭部分に注目します。
  4. <?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 スキーマが格納されているディレクトリです。

  5. weblogic.xml 内の要素と属性は、weblogic.xml の各インスタンスをオープンおよびクローズする weblogic-web-app 要素に挿入されるメンバーです。
  6. <weblogic-web-app>
    ....
    </weblogic-web-app>
  7. session-descriptor 要素には、Web アプリケーションのサーブレット セッション用のセッション パラメータが含まれます。子要素の名前は weblogic-web-app.xsd で定義されています。同じ session-descriptor 要素内で子要素の値を設定できます。
  8.   <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 に設定され、セッションは永続的に格納されません。

  9. virtual-directory-mapping 要素は、HTTP 画像リクエストを処理するときにサーブレットが最初に確認する場所を設定します。子要素の local-pathurl-pattern は、受信するリクエストの URL パターンを物理的な場所にマップします。
  10. <virtual-directory-mapping>
    <local-path>c:/medrec_tutorial/src/common/web</local-path>
    <url-pattern>images/*</url-pattern>
    </virtual-directory-mapping>
  11. weblogic.xml ファイル内の context-root 要素は、Web アプリケーションのコンテキスト ルート ディレクトリを設定します。コンテキスト ルートは、サーバのベース URL を基準にした相対パスにある Web アプリケーションの基本パスです。たとえば、MedRecServer のベース URL は http://host:7101 で、Web アプリケーションのコンテキスト ルートは physician です。ユーザは、http://host:7101/physician を基準にした相対パスにある physician Web アプリケーションのコンポーネントにアクセスします。
  12. 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 スキーマ ファイルを調べてみてください。

 


関連情報


  ページの先頭       前  次