2008-01-01から1年間の記事一覧
以外と大事。addCustomiserというだけあってaddです。 つまり動作順が依存してます。上から順にデス。例えばtxAttributeCustomizerを先頭に記述すると、以後のcustomizerを包括してトランザクション制御ができます。 txAttributeCustomizer "aop.traceInterc…
TxAttributeCustomizerでトランザクションの指定をすると、publicな全てのメソッドに適用されます。 コンポーネントが持つすべてのpublicメソッドがトランザクション制御の対象になります。 SAStrutsではActionにvalidationを記述するんですがprotectedにし…
TxAttributeCustomizerを設定した場合、例外はずべてコミット処理されるみたいです。 j2ee.requiredTx等のコンポーネントを使って設定した場合はコミットする・しないを明示的に設定できたけど、どうもTxAttributeCustomizerにはaddCommitRule()やaddRollbac…
SAStrutsはバリデーションのメソッドをActionに書くん様になっているんだけど、actionCustomizerでTxAttributeCustomizerを設定するとバリデーションのメソッドにまでTxAttributeが当たってるみたい。 ログに出てる。 @Executeがあるメッソッドだけでいいん…
例えばこんなの @Required @DateType public String[] hoge; 当然といえば当然だけど、検証した結果を パラメータが未送信であればnull キーのみ送信されれば値が空でも、@RequiredはTrueになる 各要素の中のデータタイプの検証はできない。@DateTypeって書…
SAStrutsやS2Strutsならアノテーションだけで検証ができるんだけど、日付検証の場合大抵システムで決まった書式があるだろうからデフォルトで設定しておきたい。ということで、S2Strutsはdiconファイルにそんなことを書けた気がするのでSAStrutsでもできるか…
SAStrutsを組み込みサーバで動かしてみるの続き取りあえずJettyで起動できて、すんなりリクエストも発行してレスポンスをテキストベースで検証するところまでは完成。ただ気にくわない点が何個か。 アプリケーションディレクトリとして指定できるのが1つなの…
組み込みサーバで動かしてHTTPレイヤーからテストできる様にしてみたかったんだけど、どうも上手くいかんね。ほっとデプロイとかも動いてくれないかと思ったりしてGlassfishV3とかJettyとか色々と試してみたけどあんまりうまくいできないね。 また明日も挑戦…
CVSでは日本語のファイル名が扱えない。Linux上のHudsonで日本語のファイル名をcvsでcheckoutすると、文字化けしてエラーになる。 当然の結果でWindowsで動かしたらうまくいく。S2Unit4のテストメソッドに日本語入れちゃったから、期待値のExcelに日本語名が…
OSのコマンドで消してあげて、再度画面からプロジェクトを削除すればOK
あるプロジェクトでの話である。このプロジェクトは工程を分割した契約にはなっていたが、トータルの予算もほぼ決まっており実質金額先行の一括契約であった(何度も指摘している通りこの様な契約はよろしくないのだが、実態として一番多い)。 スタートして…
@OneToManeyなエンティティのテスト期待値の書き方の続き。s2jdbc-tutorialのJoinTestを以下のようにしてテストをしたいんだけど、期待値をエクセルで各方法がよくわからない。 Employee result = jdbcManager .from(Employee.class) .leftOuterJoin("depart…
一回挫折したので、再度。情報はこの辺 Shift_JIS データベース on Oracle XE なんとなく: OracleXEでJA16SJISの利用
備忘録 sc.exe delete "サービス名"
SQLファイルは、クラスパス上にあるならどこにおいてもかまいませんが、 ルートパッケージ.sql.テーブル名 のパッケージに対応したディレクトリ配下に置くことを推奨します。 例えば、 employee テーブルに関するSQLファイルは、 examples/sql/employee ディ…
テスト対象のエンティティが関連を持っている時のテスト期待値の書き方がよくわからない。 記載がありそうな所をあさってみたもののN:1のマッピングもベースとなるシートに「カラム名_関連番号」の名前で記述します。 N:1のマッピングもベースとなるシートに…
/Application/Utilities/Java/Java Preferences.appを起動して設定できる。シンボリックリンクを張り替えてるみたいなこと書いてることもあるけど、これで出来ます。
「Silverlightを囲む会 in大阪#3」が近所で開催されるので覗きに行ってきました。今回は「Flex3勉強会第46回@大阪」と共催みたいでした。内容は毎回あんな感じなのかもしれませんが、どちらかというとスタートアップな感じで。ヒットはRIAのUIはアフォーダン…
ActionとServiceの責務の続き。SAStrutsのサンプル(employee)を書くときに、最初は、ActionとServiceは分けていたんです。で、どうだったかって言うと、ActionはS2BeanUtilsを呼び出すコードだけがあり、Serviceには、S2JDBCを呼び出すコードだけしかない。 …
AbstractAutoBatchUpdate#executeInternal()のなかで実行結果の件数を元にvalidateRows()で更新件数が0の時は楽観的排他ロックのエラーとしてるんだけど、OracleのjdbcではどうもexecuteBatchの戻り値としてSUCCESS_NO_INFO(-2)が返ってきてて、件数が正しく…
SAStruts+S2JDBCを使った開発では ServiceはEnthity単位に ロジックはActionに記述する ユースケース内のコードシェアは抽象クラスで 広範囲のコードシェアはLogicなりユーティリティなクラスで という感じみたいですが、ちょっと悩みどころが。よく1つのテ…
ふと思ってみたので。個別のフィールドの話だし。独自に実装したvalidateはやるべきなんだろうけど、設定だけで済むようなものはやった方がいいんかなぁ?Strutsみたいに遠くにあればやる必要はあるのかも。 でもS2StrutsもSAStrutsも近くにあるし。世間では…
Employeeの中にBooleanで定義したプロパティがあって、デーブルのカラムはchar(1)だとすると、S2JDBCでは「0=false」、「1=true」な感じで更新なんかをしてくれますが、S2Unitを使って検証を行うと「false」と「0」だといって怒られます。仕方がない気もする…
S2JDBCで発行されるSQLを取得できるようなことをどこかでみた覚えがあるので、思い出して探す。 結果は後ほど。 2008/07/23 09:48 追記 みっけ。 SqlLogRegistry registry = SqlLogRegistryLocator.getInstance(); SqlLog sqlLog = registry.getLast(); S2JD…
S2JDBCでAutoSelectかSimpleWhereを使ってWhere句を設定するんだけど演算の順位付け(?)を設定する方法が判らない。例えば複合キー(id1、id2)で特定のキー(id1=1、id2=1)以外の全てを取得したい場合 (例が悪いけど・・・) SimpleWhere w1 = new SimpleWhe…
S2JDBCのupdateは更新対象のレコードがない場合、SOptimisticLockExceptionが返ってきます。 これでもいいんでしょうが、できれば「対象がありません。」みたいな感じがうれしいので、updateの前に更新対象のEntityが存在するかしないか調べたいとお思います…
セキュリティとやらでHTTPのメソッドを制限したいらしいです。しかも反RESTFulな感じで。何でもかんでもPOSTらしい。POSTだと安全と思ってる節がある。bodyにあるかURLにあるかの違いだけなんだけど。ApacheのLimitでやるのがいいと思うのだが、それもできな…
SAStrutsではStrutsのActionクラスをラップしたActionWrapperがexecuteを実行しているのでActionWrapper#processErrorsで対処してあげればいいです。 ActionWrapperのサブクラスMyActionWrapperをつくって、processErrorsのみオーバライドしたあとに、MyActi…
S2Junit4の続き。s2junit4.diconを以下のように設定。javaee5.diconの代わりにapp.diconをロードするように変更。 ... "app.dicon" ...DataAccessorをフィールドに定義して初期ロードなんかをしてみたんだが、@BeforeメソッドでDataAccessorを使おうとする…
EclipseでSourceアーカイブの日本語が化けます。 普段は日本語が書いてあることがないのでほとんど気にならないですが、Seasarを使うようになって初めてちゃんと表示されないのに気づきました。 原因はSourceアーカイブはWorkspaceのエンコーディングを使っ…