S2StrutsをJSP1.2環境(Tomcat4.1)で使う -その5-

 subversion上のtrunkにコミットされたソースをビルドして、ELInitializeTagクラスを元に戻しまして試しましたが同じ現象がおきています。ソースを見たところ、InitializeTagクラスに同じ記述を加えて頂いているようです。
 コメントには、Tomcat4.1の場合だとJSPServletでHttpServletRequestが異なるので再設定するとなっていますが、Tomcat4.1以外の方に影響はないのでしょうか。

 現象をもう少し詳しく書くと下記のようになります。

 1.入力画面呼び出し(entry.jsp)
 2.InitializeタグでEntryInitActionの呼び出し
  ・セッションに値がない場合は、フォームの初期値を設定
 3.入力画面の表示
  ※2で設定した値が表示されない
 4.データを入力しPOST
 5.EntryActionの呼び出し
  ・セッションに格納されたEntryDtoにデータが格納される
 6.確認画面の表示(confirm.jsp)
 7.確認画面から入力画面に戻る
 8.入力画面の再呼び出し
 9.InitializeタグでEntryInitActionの呼び出し
10.入力画面の表示
  ※5で設定した値が表示される

 10の時も表示されなければ前述の箇所が原因かもしれませんが、表示されてしまうのでやっぱり使い方が悪いのでしょうか。

【追記】
 EntryDtoがセッションに存在する場合は表示され、セッションにない場合は表示されないだけみたいです。InitActionにEntryDtoのgetterを作成してExportToSessionアノテーションをつけると表示されるようになりましたが、4でエラーになります。
 SingletonS2ContainerFactory.getContainer().setRequestをつけてもはずしても現象に関係ないようなので、原因としては違うようです。使い方が間違っているのかな・・・。

java.lang.ClassCastException
at org.seasar.struts.interceptors.ProcessPojoFormInterceptor.lookupPojoForm(ProcessPojoFormInterceptor.java:136)
at org.seasar.struts.interceptors.ProcessPojoFormInterceptor.createPojoForm(ProcessPojoFormInterceptor.java:115)
at org.seasar.struts.interceptors.ProcessPojoFormInterceptor.processPojoForm(ProcessPojoFormInterceptor.java:85)
at org.seasar.struts.interceptors.ProcessPojoFormInterceptor.invoke(ProcessPojoFormInterceptor.java:60)
at org.seasar.struts.processor.S2RequestProcessor$$EnhancedByS2AOP$$1d121c7$$MethodInvocation$$processActionForm0.proceed(MethodInvocationClassGenerator.java)
at org.seasar.struts.processor.S2RequestProcessor$$EnhancedByS2AOP$$1d121c7.processActionForm(S2RequestProcessor$$EnhancedByS2AOP$$1d121c7.java)
at org.seasar.struts.processor.AcceptorImpl.process(AcceptorImpl.java:87)
at org.seasar.struts.processor.S2RequestProcessor.process(S2RequestProcessor.java:59)