VFSポートレットでのException

VFSポートレットでjavax.faces.STATE_SAVING_METHODをclientに変えたら、シリアライズできないと怒られた。何か設定を間違えたかな??なんか前にも見たような気もするけど、緊急ではないので、後で考えよ。というわけで、メモがてらに記録。

2006.09.11,06:34:00,244,StandardSession.java:1461,WARN,セッション 48B053A2126303A3188CC2EC80D1689A のためにセッション属性 javax.portlet.p.vfs-11?org.seasar.teeda.core.application.TeedaStateManager.SERIALIZED_VIEW-/jsp/ListView.jsp をシリアライズできません
java.io.NotSerializableException: org.seasar.teeda.core.application.impl.TeedaSessionStateManagerImpl
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1455)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:931)
at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:516)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:462)
at org.apache.catalina.session.StandardManager.stop(StandardManager.java:666)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4337)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:892)
at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:978)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1172)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:292)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1305)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1569)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1558)
at java.lang.Thread.run(Thread.java:595)

MyFacesブリッジ

かなり格闘しているけど、現在は、MyFaces環境で動作確認中。っで、現在、一つ問題が・・・。javax.faces.STATE_SAVING_METHODがclientだと、イベントが処理されない。原因は、ViewTag#doAfterBodyで、クライアントのときにFORM_STATE_MARKERとかを置き換えるのだけど、それができないみたい。ここで、ResponseWriterをcloneしたりしているから、何が起こっているのか確認しないとわからんな・・・。

リリースプラン

各ポートレットと PAL Portal のリリース計画を立ててみる。まず、

  • MyFaces ブリッジ 0.8 リリースする (名前を Tomahawk ブリッジに替えたいところ・・・)

たぶん、現状のものでいけるとは思うが、Liferay と JBoss Portal で動作確認して、動くなら、リリース。でも、javax.faces.STATE_SAVING_METHODについては、server のみサポートにしておこう。client については、次で考えることにする(clientでも動けば、MYFACES-434に終止符を打てるんだけどな)・・・。

  • TODO リスト、アドレス帳、ノートパッド、VFS ポートレットをリリースする

MyFaces ブリッジがきちんと動いているなら、これらのポートレットもLiferay や JBoss Portal で動くはず。というわけで、現状、Jetspeed2 でしか、動いていない状況を変えたい。アドレス帳は登録時に日付がおかしい問題があるのでそれだけは直す必要がある。ブログポートレットは、次の Teeda のリリースが必要なので、基本的には、少々待ちにする(まぁ、パッチを当てたリリース物で回避してもいいけど、これらの作業をしている間に次のリリース時期になっているような気もする)。

  • PAL Portal beta1 をリリースする

J2 デスクトップ版のリリースは、ちょっと質的に厳しい気もするので、普通の J2 にデコレータを作成して、それをリリースしようと思う。J2 デスクトップの質的な話は、Steve が何か作業すると思うし、進んでいなかったら、PAL Portal beta1 のリリース後に考えよ・・・。

とりあえず、以上のことを数週間のうちに完了させたいところ(MyFacesブリッジに結構はまったから、考えていたプランより遅れ気味・・・)。ここまでできたら、MyFaces ブリッジの client 状態サポートや新規ポートレットを考えよう。