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>