MySQLでS2Daoを使っていて、insert してもその後、オブジェクトに正しいプライマリキーのIDが入らないから何でだろうと思い、調べてみる。MySQLの場合は、オブジェクトを insert した後に SELECT LAST_INSERT_ID() をして、値を取得して、オブジェクトに入れてくれるのね。っで、insert したコネクションと SELECT LAST_INSERT_ID() したコネクションが違うと、0 が返ってきて、オブジェクトの ID が 0 になるみたい。というわけで、トランザクションまわりの自分の設定が悪かったわけでした(^^; なるほどね、ちょっと賢くなった。
月: 2008年9月
OSCで話すデモ資料
OSCでデモしようとした SAStrutsなポートレットの開発デモですが、思わぬ失敗するのを避けるのと、私の持ち運びよう LOOX U50XN でポータルとEclipseを動かしてやるのは遅くて時間的に無理なので、一連の作業を Flash にまとめました。というわけで、これでデモが動かないとかはないので、確実に紹介できるかと。そのデモでは、Dolteng で SAStruts プロジェクトを作って、ポートレットに必要な変更して、PALポータルにEclipseから直接配備して、HOTdeployでポートレットを作れますよ、っていう感じです。という感じですので、興味がありましたら、どうぞお越しくださいませ。
あとは、SSO Proxy の準備かな・・・(最近そのコードをいじってないからどこまでやったか、忘れているけど・・・)。
SAStruts for Portlet: IndexActionまわり
OSC のデモ準備をして、Dolteng でプロジェクト作ったりしているのだけど、一つ問題発見・・・。いつも、IndexAction でアクション処理をしないで(つまり、/WEB-INF/view/index.jsp)、ディレクトリとか作って HogeAction みたいにしてやってたのだけど(つまり、/WEB-INF/view/hoge/index.jsp)、この IndexAction でアクション処理させると問題があることに気がつく。S2FormTag のとこで、IndexActionForm が見つからんといわれる。調べたら、HogeAction のときは、S2FormTag で container.hasComponentDef されるから moduleConfig に値が入るのだけど、IndexAction のときは、hasComponentDef されるタイミングがないから、失敗してしまう。ポートレットでのアクション処理は、doView のときにRoutingFilterでのhasComponentDefをすっ飛ばすから moduleConfig に入らんのよね。ポートレットのS2FormTagをいじるのが良さそうだけど、またあとで考えよ・・・(というわけで、ひとまず、ポートレットのときは、/view/ の下に一つ掘ってくださいませ)。
これ調べてたら、OSCの準備作業があまり進まなかった・・・。