<?xml version="1.0" encoding="UTF-8" ?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">

<!-- ======================================== リスナ定義 -->

  <!--
    起動時にルートアプリケーションコンテキストを読み込むローダクラス。
    (デフォルトでは、"/WEB-INF/applicationContext.xml"から読み込む)
    WebApplicationContextUtils.getWebApplicationContext(servletContext)を
    使用することで、Webアプリケーション内の任意のクラスから
    アプリケーションコンテキストにアクセスすることが可能。
  -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- ルートアプリケーションコンテキストを定義するXMLファイルのロケーション -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>
  
  <!--
    コンテキストパラメータ"log4jConfigLocation"で指定されたロケーションの
    Log4j設定ファイルを読み込むリスナ。
    Log4jConfigListenerの初期化が完了した時点で上記設定ファイルが有効となる。
  -->
  <listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>
  <!-- Log4j設定ファイルのロケーション -->
  <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/classes/log4j.properties</param-value>
  </context-param>

  <context-param>
    <!--
      上記"log4jConfigLocation"の値が同一である複数のWebアプリケーションを
      同時にデプロイする場合は、webAppRootKeyパラメータを一意に設定すること。
     -->
    <param-name>webAppRootKey</param-name>
    <param-value>TERASOLUNA Server Framework for Java(Web)</param-value>
  </context-param>

<!-- ======================================== フィルタ定義 -->

  <!-- セッション同期化 -->
  <filter>
    <filter-name>sessionLockControlFilter</filter-name>
    <filter-class>jp.terasoluna.fw.web.thin.SessionLockControlFilter</filter-class>
    <!-- 
    <init-param>
      <param-name>interruptResponseCode</param-name>
      <param-value>503</param-value>
    </init-param>
    <init-param>
      <param-name>threshold</param-name>
      <param-value>2</param-value>
    </init-param>
    -->
  </filter>

  <filter-mapping>
    <filter-name>sessionLockControlFilter</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>

  <!-- アクセス権限チェック -->
  <!-- 設定例
  <filter>
    <filter-name>authorizationControlFilter</filter-name>
    <filter-class>
      jp.terasoluna.fw.web.thin.AuthorizationControlFilter
    </filter-class>
  </filter>

  <filter-mapping>
    <filter-name>authorizationControlFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  -->

<!-- ======================================== サーブレット定義 -->

  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- アクションサーブレットマッピング定義 -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

  <!-- ウェルカムページ定義 -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <!-- エラーページ定義 -->
  <error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/error.jsp</location>
  </error-page>

  <error-page>
    <error-code>404</error-code>
    <location>/error.jsp</location>
  </error-page>

  <error-page>
    <error-code>503</error-code>
    <location>/error.jsp</location>
  </error-page>

  <jsp-config>
    <!-- Strutsタグ -->
    <taglib>
      <taglib-uri>/struts-bean</taglib-uri>
      <taglib-location>/WEB-INF/tlds/struts-bean.tld</taglib-location>
    </taglib>
    <taglib>
      <taglib-uri>/struts-html</taglib-uri>
      <taglib-location>/WEB-INF/tlds/struts-html.tld</taglib-location>
    </taglib>
    <taglib>
      <taglib-uri>/struts-logic</taglib-uri>
      <taglib-location>/WEB-INF/tlds/struts-logic.tld</taglib-location>
    </taglib>

    <!-- TERASOLUNAカスタムタグ -->
    <taglib>
      <taglib-uri>/terasoluna</taglib-uri>
      <taglib-location>/WEB-INF/tlds/terasoluna.tld</taglib-location>
    </taglib>

    <taglib>
      <taglib-uri>/terasoluna-struts</taglib-uri>
      <taglib-location>/WEB-INF/tlds/terasoluna-struts.tld</taglib-location>
    </taglib>
  </jsp-config>

</web-app>
