Seasar DI Container with AOP

S2JSF 1.0.x から 1.1.x への移行ガイド

バージョン1.0系で作成されたアプリケーションを、1.1系へ移行するためには、次の作業が必要です。
(S2JSF1.0.17-example から S2JSF1.1.0-beta3-exampleへの移行を念頭においています。)

jarファイルの入れ替え

以下のjarファイルを削除する。

  • myfaces-1.0.9.jar
  • commons-codec-1.2.jar
  • commons-digester-1.5.jar
  • commons-validator.jar
  • commons-collections-3.0.jar
  • log4j-1.2.8.jar
  • ognl-2.6.5.jar
  • s2-extension-2.3*.jar
  • s2-framework-2.3*.jar
  • s2jsf.1.0.*.jar
  • xercesImpl-2.5.0.jar

以下のjarファイルを追加する。

  • teeda-core-x.x.x.jar
  • teeda-extension-x.x.x.jar
  • commons-lang-2.1.jar
  • jstl-1.1.2.jar
  • log4j-1.2.13.jar
  • ognl-2.6.7.jar
  • s2-framework-2.4.*.jar
  • s2-extension-2.4.*.jar
  • s2-jsf-1.1.*.jar
  • tomahawk.jar(オプション)
  • commons-fileupload-1.0.jar(オプション)
  • xercesImpl-2.6.2.jar
上記の削除、追加を行って、ビルドパスに追加する。

web.xmlの修正

myfacesの記述を消し、teedaの記述を加える。

  • <context-param>で<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>部分を削除
  • <context-param>で<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>部分を削除
  • <context-param>で<param-name>org.apache.myfaces.PRETTY_HTML</param-name>部分を削除
  • <context-param>で<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>部分を削除

listenerの設定を修正

MyFacesのListener登録してあったところを、TeedaのListenerに置き換える。
<listener>
  <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
<listener>
  <listener-class>org.seasar.teeda.core.webapp.TeedaConfigureListener</listener-class>
</listener>
に変更する。

filterの設定を修正

<filter>のrequestDumpFilterの記述を削除

diconの修正

  • app.diconにteeda.diconをincludeする
  • j2ee.diconを削除する
  • jdbc.diconを追加する
  • convention.diconを追加する
  • teedaCusomize.diconを追加する(*1)
  • teedaErrorPage.diconを追加する
  • jsf.diconのErrorMessageFinderクラスの指定をTeedaに変更する(*2)
*1:idをMyFacesと互換性を保ちたい場合は、[1]を[2]に変更する。
[1]<component class="org.seasar.teeda.core.render.DefaultComponentIdLookupStrategy" />
[2]<component class="org.seasar.teeda.core.render.JsfSpecComponentIdLookupStrategy" />

*2:jsf.diconのErrorMessageFinderクラスの指定先を[1]から[2]に変更する。
[1]<component name="errorMessageFinder" class="org.seasar.jsf.util.ErrorMessageFinder" />
[2]<component name="errorMessageFinder" class="org.seasar.teeda.core.util.ErrorMessageFinder" />

MyFacesの拡張コンポーネント使用時

  • ファイルアップロード

ファイルアップロード機能は、S2JSFでは提供していません。 MyFacesのinputFileUploadを使用している場合は以下の手順により使用可能になります。

以下のjarファイルをWEB-INF/libに追加します。

  • commons-fileupload-1.0.jar
  • tomahawk.jar

jsf.diconに以下のMyFacesの拡張タグを追加します。

<initMethod name="addTaglibUri">
   <arg>"x"</arg>
   <arg>"http://myfaces.apache.org/tomahawk"</arg>
</initMethod>

web.xmlに以下のfilterとfilter-mappingを設定します。

<filter>
  <filter-name>extensionsFilter</filter-name>
  <filter-class>org.apache.myfaces.component.html.util.ExtensionsFilter</filter-class>
  <init-param>
    <param-name>uploadMaxFileSize</param-name>
    <param-value>100m</param-value>
    <description>Set the size limit for uploaded files.
      Format: 10 - 10 bytes
              10k - 10 KB
              10m - 10 MB
               1g - 1 GB
    </description>
  </init-param>
  <init-param>
    <param-name>uploadThresholdSize</param-name>
    <param-value>100k</param-value>
    <description>Set the threshold size - files
      below this limit are stored in memory, files above
      this limit are stored on disk.
      Format: 10 - 10 bytes
              10k - 10 KB
              10m - 10 MB
               1g - 1 GB
    </description>
    </init-param>
    <init-param>
      <param-name>uploadRepositoryPath</param-name>
      <param-value>/temp</param-value>
      <description>Set the path where the intermediary files will be stored.
      </description>
  </init-param>
</filter>

<filter-mapping>
  <filter-name>extensionsFilter</filter-name>
  <url-pattern>*.html</url-pattern>
</filter-mapping>