2008-08-01から1ヶ月間の記事一覧

S2BeansUtilsでEnum型のconverterをつくる。

S2BeansUtilsでEnum型のconverterを作ってみたんだけど、どうもしっくりこない。 public class EnumOrdinalConverter implements Converter { private final Class enumClass; public EnumOrdinalConverter(Class enumClass) { this.enumClass = enumClass; …

「外だしSQL」を手放す。

iterateで取得するときの続き。寝かせてみました。id:higayasuoさんから BasicSelectHandlerと自前のResultSetHandlerの組み合わせ。 といただきましたが、Commons.DBUtilsとほとんど同じ機能なのでS2JDBCの外だしSQLが使えません。外だしSQLでビルドアップ…

iterateで取得するとき

Javaで大量のデータをListなんかで取得しちゃうと件数分のオブジェクトを作成してしまうので困るんですが、J2JDBCだと1件毎に取得できるのでJVMに負担をかけずに処理できます。カラム名の取得を行いたい場合、BeanMapを使ってカラム名を動的に取得できるんで…

セッションにセットされるタイミング

SAStrutsでセッションにオブジェクトを持ちたい場合は、Serializableをimplementsして @Component(instance = InstanceType.SESSION) アノテーションを付けておけばいいんだけど、どうも書き込むタイミングが一連のトランザクションの最後になってそう。inte…

SQLPlusでCLOB型のカラム内容を表示する。

こんな感じのことを。 set pages 50000; set long 2000000000;

HttpSessionListener#sessionDestroyed

HttpSessionListenerでセッション・イベントで処理をしてるんだけど、セッションの永続化をしてるとどうもオンメモリな情報と永続化された情報それぞれでsessionDestroyed()のイベントが起きてるみたい。困った。どうしようかなぁ?

Actionの@ExecuteなメソッドのみにTxAttributeを設定する。

どうもデフォルトではできないようなので、TxAttributeCustomizerを継承してカスタマイズしてあげればできるけど・・・クラス名もイマイチだし、ここまでやる必要があるかどうかも。 validatorでコミットしました言われるのは確かに気持ち悪いけれども・・・…

ActionCustomizerの順番

以外と大事。addCustomiserというだけあってaddです。 つまり動作順が依存してます。上から順にデス。例えばtxAttributeCustomizerを先頭に記述すると、以後のcustomizerを包括してトランザクション制御ができます。 txAttributeCustomizer "aop.traceInterc…

TxAttributeCustomizer

TxAttributeCustomizerでトランザクションの指定をすると、publicな全てのメソッドに適用されます。 コンポーネントが持つすべてのpublicメソッドがトランザクション制御の対象になります。 SAStrutsではActionにvalidationを記述するんですがprotectedにし…

TxAttributeCustomizerでの特定例外をコミット処理にする。

TxAttributeCustomizerを設定した場合、例外はずべてコミット処理されるみたいです。 j2ee.requiredTx等のコンポーネントを使って設定した場合はコミットする・しないを明示的に設定できたけど、どうもTxAttributeCustomizerにはaddCommitRule()やaddRollbac…

actionCustomizerでTxAttributeCustomizerを設定すると

SAStrutsはバリデーションのメソッドをActionに書くん様になっているんだけど、actionCustomizerでTxAttributeCustomizerを設定するとバリデーションのメソッドにまでTxAttributeが当たってるみたい。 ログに出てる。 @Executeがあるメッソッドだけでいいん…

配列型のフォームプロパティ

例えばこんなの @Required @DateType public String[] hoge; 当然といえば当然だけど、検証した結果を パラメータが未送信であればnull キーのみ送信されれば値が空でも、@RequiredはTrueになる 各要素の中のデータタイプの検証はできない。@DateTypeって書…

Validatorで日付のデフォルトフォーマット

SAStrutsやS2Strutsならアノテーションだけで検証ができるんだけど、日付検証の場合大抵システムで決まった書式があるだろうからデフォルトで設定しておきたい。ということで、S2Strutsはdiconファイルにそんなことを書けた気がするのでSAStrutsでもできるか…

続・SAStrutsを組み込みサーバで動かしてみる

SAStrutsを組み込みサーバで動かしてみるの続き取りあえずJettyで起動できて、すんなりリクエストも発行してレスポンスをテキストベースで検証するところまでは完成。ただ気にくわない点が何個か。 アプリケーションディレクトリとして指定できるのが1つなの…

SAStrutsを組み込みサーバで動かしてみる

組み込みサーバで動かしてHTTPレイヤーからテストできる様にしてみたかったんだけど、どうも上手くいかんね。ほっとデプロイとかも動いてくれないかと思ったりしてGlassfishV3とかJettyとか色々と試してみたけどあんまりうまくいできないね。 また明日も挑戦…

CVSでの日本語ファイル名

CVSでは日本語のファイル名が扱えない。Linux上のHudsonで日本語のファイル名をcvsでcheckoutすると、文字化けしてエラーになる。 当然の結果でWindowsで動かしたらうまくいく。S2Unit4のテストメソッドに日本語入れちゃったから、期待値のExcelに日本語名が…

プロジェクトの削除に失敗したら

OSのコマンドで消してあげて、再度画面からプロジェクトを削除すればOK