タグ

seasarに関するkoko1000banのブックマーク (29)

  • S2JDBCをS2非依存にしてみた - かとじゅんの技術日誌

    みなさま、こんばんわ。 非DIコンテナの世界で使いやすいORM OSGi上で使い勝手のよさそうなORMを探しているんですけど、いいものがないですね。 ORMといえばS2JDBCなんだけど。SQLがメソッドチェーンでかけてIDEでリファクタリングできるのはあまりにもメリットが大きいと。個人的に思っている。 OSGi上で動くフレームワークを実装しようとしていて、そこではまずDIコンテナ非依存な世界なんで、S2は使えないということで非常にクマった。 ならば、S2JDBCのソースをS2非依存にしてみようかしらと少し逝った発想でソースコードをみながら改造改造w S2JDBCからS2分離手術 Seasar2体とS2-tigerからJdbcMangaer関連のソースを抜き出して、以下のような作業を実施。1日ぐらいでできた。 S2Containerインターフェイスを適当な汎用インターフェイスに置き換える

    S2JDBCをS2非依存にしてみた - かとじゅんの技術日誌
  • HOT deployでのClassCastException対策その2 - 日記のような何か

    現時点(Seasar2.4.34まで)のHOT deployでは、HttpSessionを直接使用して、リクエストをまたいでHttpSessionに格納されたオブジェクトを取得してキャストすると、ClassCastExceptionが発生する。 例.XxxAction#indexでセッションにXxxDtoを格納して、XxxAction#index2でセッションから取得する。 public class XxxAction { @Resource protected XxxDto xxxDto; @Execute(validator = false) public String index() { HttpSession session = RequestUtil.getRequest().getSession(); session.setAttribute("xxxDto", xxxDto)

    HOT deployでのClassCastException対策その2 - 日記のような何か
  • http://jfut.featia.net/diary/20090416.html

  • PerlでSeasar2のコンポーネントを使う - dragon3のブログ

    Perl(CPAN)は最強だ。 Inline::Javaを使えば、こんなこともできてしまう。 lib/ ... 依存ライブラリ全て s2-framework-2.2.11.jar s2-extension-2.2.11.jar ...などなど classes/ ... classファイルディレクトリ app.dicon ...などなど component_list.pl ... Seasar2コンポーネント一覧出力Perlスクリプト(中身は以下) Seasar2のバージョンが、2.2 なのはつっこまないでください。 component_list.pl use strict; use warnings; use Encode; use Inline Java => 'STUDY', STUDY => [ qw( java.lang.Class java.util.List org.seasa

    PerlでSeasar2のコンポーネントを使う - dragon3のブログ
    koko1000ban
    koko1000ban 2009/04/20
    Inline::JavaでSeasarのコンポーネントを使用
  • COOL deploy にしたら動かなくなった… - deftrash in hatena

    ローカルで HOT でサクサク開発してきて、いざ COOL にしてサーバにのっけたら、一部で動かないところがあった。ActionFormWrapper が reset メソッドを呼ぼうとして、 NullPointerException になっているっぽい。うーむ。 起動時のログを見ていくと、ActionForm 用に作成した Dto がコンポーネント登録されていない様子。うにゃあ、なんでだー? 調べてみると、ML にドンピシャのがあった。 CoolDeploy 時に登録されないコンポーネント FooDto extends HogeDto となっているとき、FooDto はコンポーネント登録されるけど、HogeDto はコンポーネント登録されない。HogeDto の型で、名前順に走査していったとき、先に FooDto が来るから、そのあとの HogeDto はコンポーネント登録をスキップする

    COOL deploy にしたら動かなくなった… - deftrash in hatena
  • はてなブログ | 無料ブログを作成しよう

    春の伊予国漫遊記。松山・今治と愛媛の魅力を満喫してきました。 法事を兼ねて愛媛観光へ 2024年のGWは、毎年恒例の名古屋帰省ではなく自宅でゆっくり過ごしておりました。というのも、4月に法事のため愛媛・松山に親族大集合というイベントがありまして、そちらをGWの旅行代わりにしたという理由です。法事は日曜日の予定ということ…

    はてなブログ | 無料ブログを作成しよう
  • Seasar2のHotDeployの流れを追ってみた - SEの行き着くところ…

    どうやって実現しているのかな、他に転用できないのかな、と以前から気になっていたので、好きな事ができる時間のある今、Eclipseのデバッグ機能を使いながら処理を追ってみた。なお、Seasar2は情報は(去年冬のSeasarConにも出たし)チェックしてたけど、実際に使ったのは初めて。 【追った処理】Sessionスコープでインスタンス管理したDTOを自前サーブレットから取得する。初めてのアクセスではなく、一度セッションに保持された状態でのアクセス。 【注意事項】・シーケンス図としての正しい書き方には全くなっていない。自分が一番理解しやすい形で書いた。・かなり端折って書いてる。分岐処理とかも抜かしてる。・Seasar2のバージョンは2.4.25。S2Tigerを組み合わせて使用。・ツールを使って出力すればよかったんやろうけど、完全手作業で作ったので細かな間違いはあると思う。 大きな流れは間違

  • S2Container

    機能リファレンス 作成すべきファイル S2Containerの定義 S2Containerの生成 SingletonS2ContainerFactory S2ContainerFactory S2ContainerServlet コンポーネントの取得 Dependency Injectionのタイプ コンストラクタ・インジェクション セッター・インジェクション メソッド・インジェクション フィールド・インジェクション インスタンス管理 自動バインディング S2Containerのライフサイクル コンポーネントのライフサイクル 環境名 定義ファイルのインクルード 定義ファイルの差し替え 定義ファイルの条件インクルード 定義ファイルの埋め込みインクルード(XInclude) 名前空間 S2ContainerFilter 暗黙的なコンポーネント AOPの適用 メタデータ コンポーネントの自動登録

  • Seaserのホットデプロイとリフレクション

    Seaserのホットデプロイは 実行時に特定箇所でクラスローダを毎回新しくするというシンプルなものです。 結構、割り切った作りになっているなぁというのが感想ですが、そのシンプルさと原理からいろいろと制限事項も生まれてしまう。 今回、私がハマったところはフレームワーク内でリフレクションをする際に、クラスローダの違いからClassCastExceptionを出したり、NoSuchMethodExceptionを出したりしたことでした。 クラスローダの基礎知識 まず、基礎知識としてクラスローダが違う場合、同じClassでも代入互換性がありません。Classの同一性は、Class自身とそのクラスローダによって定められます。 次に、クラスローダは階層構造をなしていて、まず親クラスローダにロード処理が移譲されます。 ClassLoader ClassLoader クラスは、委譲モデルを使ってクラスとリ

  • SMART deployに対応させてみる - かとじゅんの技術日誌

    DIの実用例を考えていたのですが,よいものが思いつかないので少し違う視点で書きなぐりますw ダイちゃんの以下のエントリにコンポーネントの自動登録がでてきましたね.ComponentAutoRegisterは実はS2.3で登場した機能です. 私の方では,Seasar2.4からの新機能であるSMART deployについて書いてみます. これは「jp.xet.tutorial.s2.converterパッケージにある、.*という名前(正規表現だから、全ての名前)のクラスは、勝手にコンテナに登録しとけやゴルァ」という指示。MySQLConverterとPostgreSQLConverterは、そういえばこのパッケージに置いてある。ということで、勝手に登録されたんですね。 では、そのコンポーネントの名前は? ここも空気を読むSeasar2、のターン。「クラス名の最初を小文字にした名前で、登録しとく

    SMART deployに対応させてみる - かとじゅんの技術日誌
  • さらにSeasar2を味わいまくってみる。 - 都元ダイスケ IT-PRESS

    もっとSeasar2を味わってみる。 - 都元ダイスケ IT-PRESSの続き。 さっきのapp.diconって、ちょっとネスト深くて見通し悪いよね〜。 その前にまず、いい加減パッケージ分けしましたw こんな感じで。 そしてapp.diconの見通しを良くしてみた。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components> <component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister"> <initMe

    さらにSeasar2を味わいまくってみる。 - 都元ダイスケ IT-PRESS
  • もっとSeasar2を味わってみる。 - 都元ダイスケ IT-PRESS

    DIのお話を書いてみる。 - 都元ダイスケ IT-PRESSの続きです。 まずは、Tableクラスをちょっと変えちゃいましょう*1。 import java.util.List; public class Table { public String name; public List<Column> columns; public Table(String name) { this.name = name; } } columnsフィールドの初期化がなくなっただけ。ここでピンと来たあなたは凄い。 まずはMain import org.seasar.framework.container.S2Container; import org.seasar.framework.container.factory.SingletonS2ContainerFactory; public class Ma

    もっとSeasar2を味わってみる。 - 都元ダイスケ IT-PRESS
  • DIのお話を書いてみる。 - 都元ダイスケ IT-PRESS

    まず。この物語はフィクションであり このエントリ上のコードはあくまでもチュートリアル用のコードであり、実用性に関しては(ry という訳で、id:happy_ryoのリクエストにお応えして、DIのお話。Seasar2を使ってみます。 ポリモーフィズムの例をもうちっと実用的に書いてみた。 - 都元ダイスケ IT-PRESSの続きです。 まずはいきなりMain見てみますか。 import org.seasar.framework.container.S2Container; import org.seasar.framework.container.factory.SingletonS2ContainerFactory; public class Main { public static void main(String[] args) { Table table = new Table("T_

    DIのお話を書いてみる。 - 都元ダイスケ IT-PRESS
  • [java][seasar] S2AOPを触ってはみたものの - deftrash in hatena

    恥ずかしながら格的にAOPプログラムをするのは、今回が初めて。ということで、S2AOPを試そうにも、「ポイントカットってどういう意味?」とか、「インタータイプとは何ぞや?」というところでつまづいて、なかなかスムーズに体得できていない。まあ、触りながら理解していくしかない。 とりあえず、SAStrutsのチュートリアルに独自のInterceptorを織り込んでみる。 package tutorial.interceptor; import org.aopalliance.intercept.MethodInvocation; import org.seasar.framework.aop.interceptors.AbstractInterceptor; public class HogeInterceptor extends AbstractInterceptor { private s

    [java][seasar] S2AOPを触ってはみたものの - deftrash in hatena
  • https://osdn.net/cvs/view/seasar/s2-struts/doc/aop.html?rev=1.1

  • HotDeploy + アスペクト - 豆無日記

    shotさんに教えていただいた通り、AspectCustomizerを使えばOKでした! AspectCustomizerはComponentCustomizerのサブクラスで、対象のコンポーネント定義にアスペクト定義を追加するカスタマイザです。 で、これはCreatorに登録します。 具体的には↓こんな感じ。いわゆるjpetstoreの例です。 <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN" "http://www.seasar.org/dtd/components21.dtd"> <components> <include path="aop.dicon"/> <include path="j2ee.dicon"/> <i

    HotDeploy + アスペクト - 豆無日記
  • [Seasar-user:9312] Re: log4j.propertiesの設定

  • 転送中

    リダイレクトします 以前ここにあったブログは、現在 http://blog.suz-lab.com/2007/07/seasar2log4j.html にあります。 リダイレクトしますか。

  • S2Daoのログ - 黒い猫の開発日記

    コネクション、トランザクション、SQLのログをLog4jで出すのにrootでログレベルをdebugにしてたんだけど、余計なものが大量に出力されたので調べてみた。 コネクション(物理的、論理的)取得 org.seasar.extension.dbcp.impl.ConnectionPoolImplコネクション(物理的、論理的)開放 org.seasar.extension.dbcp.impl.ConnectionWrapperImplSQL出力 org.seasar.extension.jdbc.impl.BasicHandlerトランザクション、コミット、ロールバック org.seasar.extension.jta.TransactionImplこれらのクラスをLog4jに記述すればそれぞれが出力される。 ログレベルはdebugなのでdebugを指定。 最初rootでやってたときにinf

    S2Daoのログ - 黒い猫の開発日記
  • S2Dao+MySQLでのTimestampの扱い - まとばと!

    S2Dao+MySQLのTIMESTAMPのカラムにnullを入れようとすると現在日時が入ってしまう。どうもMySQLの仕様らしい。 TIMESTAMPのカラムにはNULLは入らないので0を入れろということらしい。 S2Daoでnullが指定された場合に0に変換する独自のValueTypeを書いて何とか解決。 MySQLTimestampType public class MySQLTimestampType extends TimestampType { @Override public void bindValue(PreparedStatement ps, int index, Object value) throws SQLException { if (value == null) { ps.setInt(index, 0); } else { ps.setTimestamp(i

    S2Dao+MySQLでのTimestampの扱い - まとばと!