―BEA WebLogic Server編―


   Web Applicationのデプロイメント


■web.xml

<?xml version="1.0" charset="Shift_JIS" ?>

<!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>
  <description>...</description>

  <!-- context parameter の定義 -->
  <context-param>   <!-- * -->
    <param-name>...</param-name>
    <param-value>...</param-value>
  </context-param>
  
<!-- servlet の定義 -->
  <servlet>    <!-- * -->
  <servlet-name>...</servlet-name>
  <description>...</description>
  <servlet-class>...</servlet-class>
<init-param>   <!-- * -->
    <param-name>...</param-name>
    <param-value>...</param-value>
  </init-param>
  <!-- デプロイ時に JSP/Servlet をロードさせる順番 -->
<load-on-startup>n</load-on-startup>   <!-- ? -->
  <!-- コードで使用する security role のマッピング -->
  <security-role-ref>   <!-- * -->
    <role-name>...</role-name>
    <role-link>...</role-link>
    </security-role-ref>
  </servlet>



  <!-- JSP の定義 -->
  <servlet>   <!-- * -->
  <servlet-name>...</servlet-name>
  <description>...</description>
  <jsp-file>....jsp</jsp-file>
  <init-param>   <!-- * -->
    <param-name>...</param-name>
    <param-value>...</param-value>

  </init-param>
  <load-on-startup>n</load-on-startup> <!-- ? -->
  <security-role-ref>   <!-- * -->
  <role-name>...</role-name>
  <role-link>...</role-link>
  </security-role-ref>
  </servlet>


  <!-- servlet/JSP の URL マッピング -->
  <servlet-mapping>   <!-- * -->
  <servlet-name>...</servlet-name>
  <url-pattern>/...</url-pattern>
  </servlet-mapping>


  <!-- session タイムアウト時間 (分単位) : デフォルトは 60 分 -->
  <session-config>   <!-- ? -->
  <session-timeout>60</session-timeout>
  </session-config>


  <!-- mime マッピング -->
  <mime-mapping>   <!-- * -->
  <extension>...</extension>
  <mime-type>...</mime-type>
  </mime-mapping>


  <!-- welcome ページ -->
  <welcome-file-list>   <!-- ? -->
  <welcome-file>...</welcome-file>   <!-- + -->
  </welcome-file-list>


  <!-- error ページ -->
  <error-page>   <!-- * -->
  <error-code>...</error-code>
  <location>/...</location>
  </error-page>
  <error-page>   <!-- * -->
  <exception-type>...</exception-type>
  <location>/...</location>
  </error-page>


  <!-- taglib の定義 -->
  <taglib>   <!-- * -->
  <taglib-uri>...</taglib-uri>
  <taglib-location>...</taglib-location>
  </taglib>


  <!-- resource references: java:comp/env/... -->
  <resource-ref>   <!-- * -->
  <res-ref-name>jdbc/...</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>CONTAINER or SERVLET</res-auth>
  </resource-ref>


  <!-- URL へのアクセス制御 -->
  <security-constraint>   <!-- * -->
  <web-resource-collection>
     <web-resource-name>...</web-resource-name>
    <url-pattern>/...</url-pattern>   <!-- * -->
    <http-method>GET or POST</http-method>     <!-- * -->
  </web-resource-collection>


  <auth-constraint>
    <role-name>...</role-name>   <!-- * -->
  </auth-constraint>


  <user-data-constraint>   <!-- ? -->
    <transport-guarantee>
      NONE or INTEGRAL or CONFIDENTIAL
    </transport-guarantee>
  </user-data-constraint>
  </security-constraint>


  <!-- ユーザ認証方法 -->
  <login-config>   <!-- ? -->
  <auth-method>
    BASIC or FORM or CLIENT-CERT
  </auth-method>
  <realm-name>...</realm-name>   <!-- ? -->
  <form-login-config>   <!-- ? -->
    <form-login-page>/...</form-login-page>
    <form-error-page>/...</form-error-page>
  </form-login-config>
  </login-config>


  <!-- security roles の定義 -->
  <security-role>   <!-- * -->
  <role-name>...</role-name>
  </security-role>


  <!-- env entries の定義: java:comp/env/... -->
  <env-entry>   <!-- * -->
  <env-entry-name>...</env-entry-name>
  <env-entry-value>...</env-entry-value>
  <env-entry-type>...</env-entry-type>
  </env-entry>


  <!-- ejb refernces の定義: java:comp/env/... -->
  <ejb-ref>   <!-- * -->
  <ejb-ref-name>ejb/...EJB</ejb-ref-name>
  <ejb-ref-type>Session or Entity</ejb-ref-type>
  <home>...</home>
  <remote>...</remote>
  <ejb-link>...</ejb-link>   <!-- ? -->
  </ejb-ref>


</web-app>

■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


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

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 記事ランキング

本日 月間