SAStrutsでIllegalPropertyRuntimeException

SAStrutsでFormサブミット時に、IllegalPropertyRuntimeExceptionが発生した。

ちょっと前のログには、
例外が発生しました。理由はorg.seasar.framework.exception.SessionObjectNotSerializableRuntimeException: [ESSR0100]HTTPセッションに設定するクラスはシリアライズ可能でなくてはなりません。
とでてたので、どうやらActionFormでValidateするために、DAOをActionFormのメンバに置いていたのが原因らしい。

DAOをシリアライズ可能にするのもおかしいので、とりあえずvalidateメソッドの中で直接コンテナから取り出すことにした。

    public ActionMessages validate() {

        UserDao userDao = SingletonS2Container.getComponent(UserDao.class);

正しいのかは分からないけどとりあえず解決。