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

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

今正に

あるプロジェクトでの話である。このプロジェクトは工程を分割した契約にはなっていたが、トータルの予算もほぼ決まっており実質金額先行の一括契約であった(何度も指摘している通りこの様な契約はよろしくないのだが、実態として一番多い)。 スタートして…

関連を持つエンティティの検証

@OneToManeyなエンティティのテスト期待値の書き方の続き。s2jdbc-tutorialのJoinTestを以下のようにしてテストをしたいんだけど、期待値をエクセルで各方法がよくわからない。 Employee result = jdbcManager .from(Employee.class) .leftOuterJoin("depart…

OracleXEをJA16SJISTILDAで使用する。

一回挫折したので、再度。情報はこの辺 Shift_JIS データベース on Oracle XE なんとなく: OracleXEでJA16SJISの利用

Windowsのサービスを削除する

備忘録 sc.exe delete "サービス名"

SQLファイルによる検索

SQLファイルは、クラスパス上にあるならどこにおいてもかまいませんが、 ルートパッケージ.sql.テーブル名 のパッケージに対応したディレクトリ配下に置くことを推奨します。 例えば、 employee テーブルに関するSQLファイルは、 examples/sql/employee ディ…

@OneToManeyなエンティティのテスト期待値の書き方

テスト対象のエンティティが関連を持っている時のテスト期待値の書き方がよくわからない。 記載がありそうな所をあさってみたもののN:1のマッピングもベースとなるシートに「カラム名_関連番号」の名前で記述します。 N:1のマッピングもベースとなるシートに…

OSXのJAVAをJAVA6にする。

/Application/Utilities/Java/Java Preferences.appを起動して設定できる。シンボリックリンクを張り替えてるみたいなこと書いてることもあるけど、これで出来ます。

Silverlightを囲む会 in大阪#3

「Silverlightを囲む会 in大阪#3」が近所で開催されるので覗きに行ってきました。今回は「Flex3勉強会第46回@大阪」と共催みたいでした。内容は毎回あんな感じなのかもしれませんが、どちらかというとスタートアップな感じで。ヒットはRIAのUIはアフォーダン…

続・ActionとServiceの責務

ActionとServiceの責務の続き。SAStrutsのサンプル(employee)を書くときに、最初は、ActionとServiceは分けていたんです。で、どうだったかって言うと、ActionはS2BeanUtilsを呼び出すコードだけがあり、Serviceには、S2JDBCを呼び出すコードだけしかない。 …

jdbcManager.deleteBatch(entities).execute()での楽観的排他制御ができない。

AbstractAutoBatchUpdate#executeInternal()のなかで実行結果の件数を元にvalidateRows()で更新件数が0の時は楽観的排他ロックのエラーとしてるんだけど、OracleのjdbcではどうもexecuteBatchの戻り値としてSUCCESS_NO_INFO(-2)が返ってきてて、件数が正しく…

ActionとServiceの責務

SAStruts+S2JDBCを使った開発では ServiceはEnthity単位に ロジックはActionに記述する ユースケース内のコードシェアは抽象クラスで 広範囲のコードシェアはLogicなりユーティリティなクラスで という感じみたいですが、ちょっと悩みどころが。よく1つのテ…

Validationのテストコードを作る意味あんのかなぁ?

ふと思ってみたので。個別のフィールドの話だし。独自に実装したvalidateはやるべきなんだろうけど、設定だけで済むようなものはやった方がいいんかなぁ?Strutsみたいに遠くにあればやる必要はあるのかも。 でもS2StrutsもSAStrutsも近くにあるし。世間では…

S2UnitのassertEqualsのBoolean値の検証

Employeeの中にBooleanで定義したプロパティがあって、デーブルのカラムはchar(1)だとすると、S2JDBCでは「0=false」、「1=true」な感じで更新なんかをしてくれますが、S2Unitを使って検証を行うと「false」と「0」だといって怒られます。仕方がない気もする…

発行されるSQLを取得する。

S2JDBCで発行されるSQLを取得できるようなことをどこかでみた覚えがあるので、思い出して探す。 結果は後ほど。 2008/07/23 09:48 追記 みっけ。 SqlLogRegistry registry = SqlLogRegistryLocator.getInstance(); SqlLog sqlLog = registry.getLast(); S2JD…

S2JDBCのWhere句

S2JDBCでAutoSelectかSimpleWhereを使ってWhere句を設定するんだけど演算の順位付け(?)を設定する方法が判らない。例えば複合キー(id1、id2)で特定のキー(id1=1、id2=1)以外の全てを取得したい場合 (例が悪いけど・・・) SimpleWhere w1 = new SimpleWhe…

Entityの@Idプロパティだけ抜き出せないのかなぁ?

S2JDBCのupdateは更新対象のレコードがない場合、SOptimisticLockExceptionが返ってきます。 これでもいいんでしょうが、できれば「対象がありません。」みたいな感じがうれしいので、updateの前に更新対象のEntityが存在するかしないか調べたいとお思います…

StrutsでActionへのHTTPメソッドを制限する。

セキュリティとやらでHTTPのメソッドを制限したいらしいです。しかも反RESTFulな感じで。何でもかんでもPOSTらしい。POSTだと安全と思ってる節がある。bodyにあるかURLにあるかの違いだけなんだけど。ApacheのLimitでやるのがいいと思うのだが、それもできな…

ActionWrapper#processErrorsの処理のカスタマイズ。

SAStrutsではStrutsのActionクラスをラップしたActionWrapperがexecuteを実行しているのでActionWrapper#processErrorsで対処してあげればいいです。 ActionWrapperのサブクラスMyActionWrapperをつくって、processErrorsのみオーバライドしたあとに、MyActi…

続・S2Junit4

S2Junit4の続き。s2junit4.diconを以下のように設定。javaee5.diconの代わりにapp.diconをロードするように変更。 ... "app.dicon" ...DataAccessorをフィールドに定義して初期ロードなんかをしてみたんだが、@BeforeメソッドでDataAccessorを使おうとする…

EclipseでSourceアーカイブの日本語を正しく表示する

EclipseでSourceアーカイブの日本語が化けます。 普段は日本語が書いてあることがないのでほとんど気にならないですが、Seasarを使うようになって初めてちゃんと表示されないのに気づきました。 原因はSourceアーカイブはWorkspaceのエンコーディングを使っ…