2005-01-01から1年間の記事一覧

Hotswapすげー

今までTomcatのreloadable="true"を使ってたけど、コンパイルするたびにセッション状態がクリアされたり、初期化処理が再度走ったりと結構たるかったのが、Hotswapを使うと待ち時間、なんとゼロ!! reloadable="false"+Seasar hotswap。すげー。

S2DaoでTimestamp型フィールドの時間情報が消える謎

timestampという名前のTimestamp型のフィールドをJavaBeansに用意して、insert時の時間情報をそのまま登録させようとしているのですが、insert後のselectで時間情報が00:00:00になってしまう事象が発生していることに気づきました。 で、調査してみたんです…

PdStrutsことPage-Driven Strutsの概要

長いのでとりあえず仮称でPdStrutsと書いてみます。ぐぐってもヒットしないので、一応ユニークみたいです。だいぶ固まったのでPdStrutsの概要をぼちぼちと書いてみます。 大変なのであまり細かいことは書かない方向で。 基本アーキテクチャ ページドリブンで…

S2StrutsのMessageManager#addMessage(String)

↓というメールをMLに投げてみたけど届かないようだ。 再送するのもメンドイのでここにさらしておこう。(負け犬 nobeansと申します。MessageManagerのaddMessage()シリーズで、MessageFacadeで宣言されているaddMessage(String)に対応するメソッドがないよう…

パッケージ分け

完全にInterfaceとその実装クラスとが1対1で対応するような、たとえばlogic系パッケージだったら hoge.logic hoge.logic.impl みたいにimplパッケージと無印パッケージで分けて管理しやすいし、特に悩まないです。ですが、自作interface、その実装(〜Impl)、…

Page-Driven Struts 完成?

なんかとりあえず動くものができたっぽい。 セキュリティ的にはまだ穴がいっぱいなんだけど。 基本アーキテクチャは結構シンプルでいい感じ。

Page-Driven StrutsでのS2Strutsの利用

jpetstoreを改造しながらnobeans版Page-Driven Strutsの実装を探っているんですが、 ここ数日、CartPageでの注文量の更新処理でActionの実行前にNullPointerExceptionになってしまうエラーで悩んでいました。 java.lang.NullPointerException org.apache.str…

Page-Driven Struts 途中経過

OzStrutsにインスパイアされて作成中のOzJpetstore改ですが、かなり書き換わってます。 JSPの構成はほぼ一緒なのでUI的には変わらないのですが、何かしら手が入っているので実装面ではかなりの違いです。 Page-DrivenでStrutsを使うという思想は一緒なんです…

お仕事中ですが

etc

アップルのiMac G5欲しい!

Seasar2.3リリース

おめでとうございます。 koichikさんのブログで気がついたんですが、RC2から結構変わったところがあるんですねぇ。今気になっているのはhotswap。何気に素敵です。 S2Containerインスタンス単位でhotswapに対応するかどうかを制御できるようになるともっとう…

OzStrutsとS2Struts (続き)

どうもうまい方法を見つけたみたいです。 いい感じにPojoなPageクラスに置き換わっていっています。メインの実装クラスは S2Struts用の置換コンポーネント×3 Page遷移に関するコンポーネント×3〜4 程度です。もちょっと整理できたら詳しく書いてみたいと思い…

OzStrutsとS2Struts

ここ最近、OsStrutsのサンプルのjpetstoreのS2 + S2Daoに置き換える作業をしてました。 なんとか無事に下位レイヤをS2に置き換えることができました。 時間がかかったのは、まとまった時間をとりづらい子持ち日曜プログラマの悲しさと、S2Dao/S2Unitに不慣れ…

S2UnitのExcelによる期待値表

DataSet expected = readXls("期待値.xls"); assertEquals(expected, reload(expect)); // (1)現在のDBの状態と期待値を比較 assertEquals(expected, RESULT_BEAN); // (2)取得したBeanのプロパティを期待値と比較 assertEquals(expected, RESULT_BEAN_LIST)…

S2DaoのTIPS

引き続きメモ。 Pure Interface戦略 S2Daoのための定数アノテーションなどをinterfaceに書くと、クライアントクラスから見て不要なはずの定数にアクセスできたり、ちょっと気持ち悪いところもあります。 S2Daoではなく別のO/Rマッパーを使ったり、JDBCで実装…

S2DaoのTIPS

自分用メモ。 戻り値がbooleanのメソッドの振る舞い public boolean hasRecord();のように戻り値がbooleanのメソッドは、SQLの実行結果が0ならfalse、0以外はtrueとなるようです。 SQLをcount(*)で書けばレコードが存在するかどうかのチェックを簡単に実現で…

S2Daoに任せるメソッドと実装メソッドの共存

interface HogeDao { Hoge findByFooId(String fooId); Hoge findByBarId(String barId); }のようなインタフェースに対して、findByFooId()はS2Daoに任せたいがfindByBarId()は実装を書きたいという場合、どうするのがいいんでしょうか。 class HogeDaoImpl …

やっぱりJSFっていいのかも…

だんだん一度はあきらめたJSFが輝いて見えてきました。最近のサンプル開発遊びの中でもS2JSFでやったときが一番簡単にさくさくと進んだ気がします。 URL上で実ファイルパスを隠蔽できるような仮想パスの仕組みがJSFに入るとそれでOKな気もしてきます。でも実…

OzStrutsという選択肢

Struts in ActionのおかげでStrutsというものが結構理解できた。これでやっとStrutsの述語を使いこなせるというもの。今までがいい加減すぎただけか。Strutsがどれだけ素晴らしいかはよくわかったけど、実際のところそれで美しい設計でメンテナンスしやすいW…

MANIFEST.MFのCLASS-PATH

設定用のプロパティファイルをよくWEB-INF/confに入れたりするんですが、そうするとJavaクラスからはパス指定でアクセスすることになります。 もし、WEB-INF/confにクラスパスを通すことができれば、パスを意識しなくていいなぁと思いました。 でも、起動時…

遅ればせながら「Struts in Action」

今更ながらですが、買いました。最近プレゼンテーションフレームワークの比較検討をしてるんですが、結局判断基準はStrutsかなと。そのStrutsも断片的な知識しかなくてぜんぜんダメダメなので、各所で評判のStruts in Actionを読んで勉強しようと思いまして…

もう一冊「達人プログラマ」

これも今更ながらですが、未読だったので買いました。通勤電車で読もうかな。 達人プログラマー―システム開発の職人から名匠への道作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章出版社/メーカー: ピアソンエデュケーション…

jsp-property-group

JSP2.0から導入されたという機能を試したかったんですが、全く機能しません。 最新のTomcat5.5.12で試してるんですが…。 <jsp-config> <jsp-property-group> <description>Special property group for JSP Configuration JSP example.</description> <display-name>JSPConfiguration</display-name> <url-pattern>*.jsp</url-pattern> <el-ignored>true</el-ignored> </jsp-property-group></jsp-config>

風邪

etc

引いた…。鼻水とくしゃみがつらい。

Jarに対するAspectAutoRegist

って、まだ対応してないだけなんですね。 "org.seasar.struts"になんでaspectがかからないんだーって悩んじゃいました。 さっきS2.3RC2のorg.seasar.framework.container.autoregistパッケージ配下の構成を見て気づきました。 JarComponentAutoRegisterが増…

S2Strutsの処理概要

ちょっと独自ルールで実行時のActionを切り替えたり、ActionMappingを差し替えたりしたいので、仕組みを追ってみました。 Struts経験が浅いので一部言っていることが怪しいかもしれないですが、大枠はそれほど外してないと思います。 ↓ 目的 一応、以下を実…

S2.3RC1の自動登録での怪しい挙動

別のパッケージに同じ名前のクラス名があるときに、org.seasar.framework.container.autoregister.DefaultAutoNamingでコンポーネント名を自動解決すると、バッティングしてコンポーネント登録に失敗するようです。 登録時にエラーにならず、コンポーネント…

S2Struts「拡張子」の英単語スペル

struts-config.xmlで、viewExtentionという属性があります。 htmlとかjspとかの拡張子をカンマ区切りで指定する属性ですね。で、綴りです。よくあるtypoのようですが、extensionが正解らしいです。「s」。 extentionではないと。 大きな問題ではないですが、…

WebアプリにおけるLog4jのログファイル出力先の指定方法

かなり前に悩んでたこと。単なる相対パスだとuser.dirが基点になるため、Tomcat起動方法によって実際のファイルパスが異なってしまいます。 開発環境でEclipseから起動したらECLIIPSE_HOMEが基点に。 直接Tomcatのbin/start.batを叩いたら、TOMCAT_HOME/bin…

S2Struts1.2の無設定カスタマイズ

無設定部分カスタマイズの要のZeroConfigActionRuleとZeroConfigActionFormRule。 適当にいじりながら、id:yuki_neko_nyanさんのダイアリーも読んででお勉強。 大体見えてきました。Actionに対する各種属性を解決するクラスであるZeroConfigActionRuleが一番…

S2Struts1.2EA2突入

というわけで、S2Strutsです。 id:yuki_neko_nyanさんの[Seasarする] - 猫的怠惰Daysを参考にまずはとっかかりを、と思ってたらいきなり問題に遭遇。今のS2Struts1.2EA2実装ってSeasar4 EA1を前提に実装されているみたいで、こないだ出たS2.3RC1だとエラーが…