メニュー

2007/02/12作成

Web.xmlの編集

S2Flex2利用するには、WEB-INF/web.xml以下にGatewayServletの設定をする必要があります。ここではweb.xmlに必要な設定を説明します。

1.Servletの設定

S2Flex2を利用する上で必要なServletは以下の2つになります。

  • S2ContainerServlet
  • RemotingGateway
S2ContainerServletの設定

Seasar2のコンテナを起動するServletです。記述は以下の通りです。

<servlet>
   <servlet-name>s2servlet</servlet-name>
   <servlet-class>org.seasar.framework.container.servlet.S2ContainerServlet</servlet-class>
   <load-on-startup>1</load-on-startup>
</servlet>
※S2ContainerServletの詳細についてはこちらに説明がありますのでご参照ください。
RemotingGatewayの設定

Flex2からのリクエストを受付け、Seasar2に登録されたComponentsを呼び出すServletです。

<servlet>
   <servlet-name>gateway</servlet-name>
   <servlet-class>org.seasar.flex2.rpc.remoting.RemotingGateway</servlet-class>
   <init-param>
   <param-name>showGetResponse</param-name>
   <param-value>true</param-value>
   </init-param>
   <init-param>
   <param-name>useSession</param-name>
   <param-value>true</param-value>
   </init-param>
   <load-on-startup>2</load-on-startup>
</servlet>             

初期パラメータ

デフォルト値

説明

showGetResponse

false

HTTPのGETメソッドでgatewayServletにアクセスした場合の表示の有無を設定します。

useSession

false

HTTPSessionを利用するときには、trueを設定します。

S2Flex2 1.0.0の時には、上記パラメータに相当するものはともにtrueとして動作しています。
1.0.1にアップデートした際に1.0.0と同様の動作にするには、初期パラメータを設定の上、valueをtrueに設定するようにします。

showGetResponse

trueに設定すると、GETでアクセスしたときに以下のメッセージを表示します。この設定はS2Flex2 1.0.1から利用することが可能になります。

RemotingGateway $VERSION is running ...

※$VERSIONには、GatewayServletのVERSIONが入ります。

1.0.0ではGETアクセス時には常に以下の表示を返します。

RemotingGateway is running on http ...
useSession

trueにすると、リクエスト毎にHttpSessionが有効であるかどうかをチェックし、無効であるときには、新規のSessionを取得します。S2Flex2ではHttpSessionはデータの保存(Import)やデータの取得(Export)を利用する際にStorageとして利用します。SessionをStorageとして利用しないときにはfalseを指定することで、HttpSessionを取得しなくなります。

この設定もS2Flex2 1.0.1から利用可能になります。

2.ServletFilterの設定

S2Flex2で利用するServletFilterは以下の通りです。

  • S2ContainerFilter
  • HotdeployFilter
S2ContainerFilter

HttpServletRequestやHttpServletResponseなどをSeasar2に登録されたコンポーネントから利用できるようにするFilterです。S2Flex2を利用するときには、S2ContainerFilterをすべてのリクエストに対して設定します。

   <filter-name>s2filter</filter-name>
   <filter-class>org.seasar.framework.container.filter.S2ContainerFilter</filter-class>
   </filter>
    :(中略)
  <filter-mapping>
   <filter-name>s2filter</filter-name>
   <url-pattern>/*</url-pattern>
   </filter-mapping>
   <filter-mapping>

S2ContainerFilterについての詳細はこちらに説明がありますのでご参照ください。

HotdeployFilter

Seasar2.4からの新機能であるSmartDeployのうち、HotDeployを利用するときにはHotDeployFilterの設定が必要になります。S2Flex2でHotDeployを利用するときにはすべてのリクエストに対してHotDeployFilterを設定します。

   <filter>
   <filter-name>hotdeployfilter</filter-name>
   <filter-class>org.seasar.framework.container.hotdeploy.HotdeployFilter</filter-class>
   </filter>
   :(中略)
   <filter-mapping>
   <filter-name>hotdeployfilter</filter-name>
   <url-pattern>/*</url-pattern>
   </filter-mapping> 

3.web.xml全体

S2Flex2を利用する上で必要な設定を記述したweb.xmlはS2Flex2 1.0.1からリリースファイルのresources以下に含まれています。

s2flex2/resources/web.xml

以下web.xmlの内容です。

 <?xml version="1.0" encoding="UTF-8"?>
<!--
 	    * Copyright 2004-2007 the Seasar Foundation and the Others.
 	    *
 	    * Licensed under the Apache License, Version 2.0 (the "License");
 	    * you may not use this file except in compliance with the License.
 	    * You may obtain a copy of the License at
 	    *
 	    *      http://www.apache.org/licenses/LICENSE-2.0
 	    *
 	    * Unless required by applicable law or agreed to in writing, software
 	    * distributed under the License is distributed on an "AS IS" BASIS,
 	    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 	    * either express or implied. See the License for the specific language
 	    * governing permissions and limitations under the License.
-->
<!DOCTYPE web-app PUBLIC
   "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
   "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
   <display-name>S2Flex2</display-name>
   <description>S2Flex2 Application</description>
   <filter>
   	<filter-name>s2filter</filter-name>
   	<filter-class>org.seasar.framework.container.filter.S2ContainerFilter</filter-class>
   </filter>
   <filter>
   	<filter-name>hotdeployfilter</filter-name>
   	<filter-class>org.seasar.framework.container.hotdeploy.HotdeployFilter</filter-class>
   </filter> 
   <filter-mapping>
   	<filter-name>s2filter</filter-name>
   	<url-pattern>/*</url-pattern>
   </filter-mapping>
   <filter-mapping>
   	<filter-name>hotdeployfilter</filter-name>
   	<url-pattern>/*</url-pattern>
   <filter-mapping>
   <servlet>
   	<servlet-name>s2servlet</servlet-name>
   	<servlet-class>org.seasar.framework.container.servlet.S2ContainerServlet</servlet-class>
   <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet>
	<servlet-name>gateway</servlet-name>
	<servlet-class>org.seasar.flex2.rpc.remoting.RemotingGateway</servlet-class>
	<init-param>
		<param-name>showGetResponse</param-name>
		<param-value>true</param-value>
	</init-param>
	<init-param>
		<param-name>useSession</param-name>
   		<param-value>true</param-value>
	</init-param>
	<load-on-startup>2</load-on-startup>
   </servlet>
   	<servlet-mapping>
   		<servlet-name>s2servlet</servlet-name>
   		<url-pattern>/s2servlet</url-pattern>
   	</servlet-mapping>
   	<servlet-mapping>
   		<servlet-name>gateway</servlet-name>
   		<url-pattern>/bin/gateway</url-pattern>
   	</servlet-mapping> 
   	<servlet-mapping>
   		<servlet-name>gateway</servlet-name>
   		<url-pattern>/gateway</url-pattern>
   	</servlet-mapping>
   	<welcome-file-list>
   		<welcome-file>index.html</welcome-file>
   	</welcome-file-list>
   </web-app>