Private content!This content has been marked as private by the uploader.
Private content!This content has been marked as private by the uploader.
Seasar2の機能追加停止が宣言されてから、すでに6年弱たっています。 Seasar2.4に対する追加要望があれば、もちろん検討します。ただし、大きな変更や追加はもうないでしょう。 Seasar2の今後のロードマップ 2008-01-29 - ひがやすを blog 後継になる予定だったSeasar3も開発が中止されて3年たちました。 Seasar3開発中止 2010-08-06 - ひがやすを blog ここでSeasar2.5を出す方向で動くということでしたが、実現しませんでした。 あのころSeasar2に関わっていた人も、ScalaがメインになったりNode.jsをさわったり、不本意ながらPHPをさわったり、さわってみるとPHPもそれほど悪くなかったり、やっぱりPHP気に食わなかったりと、いろいろな道を進んでいます。 DIコンテナ自体の機能も時代遅れ感がでてきており、関連プロダクトも
同じjspを使う場合であってもurlが/employeeと/employee/indexなどとカレントパスが異なる場合があるので、jsp内でcssファイルなどを相対パスでベタ書きした場合には、どちら一方は正しくないパスとなってしまいます。 なにかSAStruts側で用意されていないか調べてみたらありました。 aタグのhref要素などを設定するときに、コンテキストルートを自動的に補完させる場合は、 f:url()を使います。パスを/ではじめた場合は、コンテキストルートからみたパスになります。パスが/ではじまっていない場合は、JSPからみたパスになります。 こんな感じで書けます。 <link rel="stylesheet" type="text/css" href="${f:url("/css/hoge.css")}">パスを/ではじめるのがミソですね。 これを知らなかったら、 <link
認証の方法は悩みがちなポイントだと思います。コンテナ等の実装も含めると手段は色々あるし、一言に認証といっても、色々な業務ロジックが絡んでくることも多いからでしょうか。 今回はSAStrutsで、sessionとAOPを使ったスタンダードな方法を実装しました。 仕組みはいたってシンプルで、何らかのロジックで認証した後、ID等のデータをセッションに格納して、その有無でログイン済みかを確認するというものです。ログアウトはそのセッションを廃棄することになります。Webアプリケーションでは王道の方法だと思います。 この場合、認証のチェックが必要な場面で同じ処理が必要になるので、SAStrutsではセッションのチェックはメソッドを分けて、AOPでアクションに適応します。 今回は、全体的にログインしっぱなしでいて欲しいので、LoginAction以外では全てのアクションで確認します。 これにより、どのペ
S2Click 1.0.3をリリースしました。 http://s2click.sandbox.seasar.org/ このバージョンはS2Click 1.0.2でClickのJARファイル内に含まれるリソースの自動デプロイに関する問題を修正したバージョンになります。 Seasar2徹底入門で紹介しようと思い、途中まで原稿も書いていたS2Cachingについてですが、せっかくなのでこのブログで紹介しておこうと思います。 S2CachingはAOPで任意のメソッドの呼び出しをインターセプトし、戻り値をキャッシュするための機能を提供します。バックエンドのキャッシュライブラリとしてEhcacheを使用しています。 S2Cachingを使うには以下のURLからs2caching-0.1-SNAPSHOT.jarをダウンロードし、クラスパスに追加します。 http://s2caching.sandbo
今回、SAStrutsを利用してサービスを構築した際に、 「定期的」にデータベースを監視する処理を作る必要がありました。 Linuxサーバで稼働させるので、cronでジョブを呼ぶ形でも良かったんですが、 他のサービスも同一サーバで稼働させる予定で、なるべく各サービスの処理は、各サービスの処理内で完結したかったんです。 そこで、s2chronosを選択してみました。 s2chronosは、定時処理をスケジュールすることができ、 さらに、SAStrutsで作成したServiceクラスをそのまま利用することができます。 これで、定時処理も各サービス内で完結することができます。 構築環境 Eclipse3.4 Dolteng Eclipse プラグイン0.40.0 プロジェクトはDoltengで作成 SAStruts S2JDBC 必要なファイルをダウンロード s2chronos-core-1.0
Seasar2徹底入門なる書籍を書かせていただいて言うのもなんですが、正直言って数年前はSeasar2はそれほど好きではありませんでした。そんな僕がなぜSeasar2徹底入門という書籍を執筆するに至ったかという話をさせていただきたいと思います。 Seasar2が大きな盛り上がりを見せていた当時、DIコンテナとしてSeasar2がSpringよりも使いやすいのはわかっていたのですが、Spring(やその他のデファクトな海外製フレームワーク)が使いにくいのであれば、Seasar2などというガラパゴスなフレームワークを作るのではなく、デファクトなフレームワークが使いやすいように本家にコントリビュートしていくことに労力を使ったほうが皆が幸せになれるのに…と思っていました。 また、S2JSF→Teeda→SAStrutsの流れに見えるような一貫性のなさにも困惑していました。当時S2JSFが使用してい
このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日本のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年10月時点の調査。
Seasar2からはできない(トランザクションが使えない)と思いこんでいたのですが、Seasar 2.4.11からorg.seasar.extension.dbcp.impl.DataSourceXADataSourceというクラスがあって、これを使うとできました。 トランザクションマネージャと連携するには, 単なる DataSource ではなく XADataSource が 必要です. 対応としては, 1.Tomcat 側で XADataSource を設定する. 2.S2DBCP を使用する. 3.S2DBCP で Tomcat の DataSource を使用する. などの方法が考えられます. 1.の場合は XADataSource に加えて JTA 実装も Tomcat 側に定義することになります. JOTM を使うことが多いようですが,自分は詳しく ありません. 2.は Sea
こんなページ調べました 参考URL Seaser2 Seasar2 - Seasar2 Seasarに関してこの2年間やってきたこと - ひがやすを blog SeasarのプロダクトMap - 主観で纏めてみた - - newta(にゅーた)の日記 Seasar関連の便利クラス - 出羽ブログ Struts使ってるならApatcheのcommonsに入ってるクラスとか使ってこうよ。 - newta(にゅーた)の日記 S2Container S2AOP Seasar2 - S2JDBC S2JDBC の弱点を補完するS2AbstractService - 出羽ブログ 続・S2JDBC の弱点を補完するS2AbstractService - 出羽ブログ S2AbstractServiceを用いたAction-Service-Logicパターン - 出羽ブログ S2AbstractServic
Seasar2 が提供している JTA の実装である S2JTA や,JTA と連携するコネクションプールである S2DBCP は,DI コンテナとは独立に使うことができます. 使い方も結構簡単です. まず JTA の場合,TransactionManager は new するだけ. import org.seasar.extension.jta.TransactionManagerImpl; TransactionManager tm = new TransactionManagerImpl();最低限必要なのはこれだけ. もし UserTransaction も使うならこれを追加. import org.seasar.extension.jta.UserTransactionImpl; UserTransaction ut = new UserTransactionImpl(tm);普
ASP,SaaSシステムを構築する場合に、DBはどうするのが一般的なんだろう? 1つのDBで全サイト管理するのか、サイト毎でDB分けるのか? どちらも一長一短あると思うが、自分はDB分ける派だ。 というわけで、S2JDBCで動的にデータソースを切り替えることを調べた。 良いサイトがたくさんあったので、お陰ですんなり出来た。 http://d.hatena.ne.jp/kimpo/20071227 http://d.hatena.ne.jp/newta/20091007/1254920106 http://ymotoba.blogspot.com/2008/10/s2jdbcdb.html http://s2container.seasar.org/2.4/ja/jdbc.html 肝の部分は以下のようだ。 jdbcManager = SingletonS2Container.getComp
sastruts-extension, SAStruts | 19:10sastruts-extensionという、SAStrutsの拡張コンポーネントがあります。Home (sastruts-extension)この中でActionAccessControlという機能があり、Proxyというクラスを作って、ActionもしくはActionのメソッドにアノテーションを設定するだけでログインチェックや権限チェックを行えます。(まだ実案件では使っていませんが、積極的に取り入れていきたいと思っています。) 準備サイトからライブラリーをダウンロードできますが、2月17日現在では0.2-rc2で、このバージョンではActionのメソッドがnullを返す(ファイルダウンロードなど)ときにNullPointerExceptionが発生するバグがあるようです。SVNからソースをチェックアウトすると0.2-
Tips† SAStrutsで任意の場所でロールバックしたいとき http://ml.seasar.org/archives/seasar-user/2008-October/016152.html @Resource public UserTransaction userTransaction; ... userTransaction.setRollbackOnly(); テーブルの一部の列を入力欄にして、各行につけたボタンでsubmitしたいとき JSP側。html:text のindexedをfalseにするのがポイント <c:forEach var="m" items="${mapItems}" begin="0" end="${dispMax - 1}" step="1"> <s:form target="_blank" > <tr> <td class="data01">${f
2010年02月08日22:26 Seasar2てんこ盛り カテゴリsato技術 ncad_sato Comment(0)Trackback(0) 佐藤です。 1月中旬から、珍しく他の会社に常駐して作業をしています。 1月中旬から開始で、2月中旬にはリリースと言う超絶スケジュールですが 画面数が少ないことと、Seasar2を有効に使ったアジャイル開発で何とか間に合いそうです。 「Seasar2を有効に使う」ということですが、今回の案件はSeasar2てんこ盛りです。 開発はSAStruts+Mayaa+S2JDBC+Mobylet+S2Chronos 単体試験はS2JUnit4 WEBで検索したり、SeasarのMLを検索したりしても、こんな組み合わせは見当たりませんでした(汗) 組み合わせるにあたって苦労した点や、便利だった点を、何回かに分けて紹介していきたいと思います。 まずは、苦労し
SmartDeploy HOT ソースコードが修正されたら即時反映。若干パフォーマンスが落ちる。 WARM プロジェクト全体のDI設定は初回のみ。あとは変更されたところのみデプロイされる(UT用かな) COOL 初期化1回のみ。パフォーマンスに影響なし。(本番用) SmartDeployのモード切替はresourceフォルダ内のenv.txtを編集する。 登録されているコンポーネントを確認する方法 web.xmlのs2containerの部分を編集 s2container org.seasar.framework.container.servlet.S2ContainerServlet 2 ★ ★ debug ★ true ★ 1 URLを叩く http://localhost:8080/SAStrutsS2JDBC/s2container?command=list interceptor
S2JDBCがパフォーマンスチューニングをしたということなので、もう一度パフォーマンス比較をしてみました。測定方法は前回と同様、1プロセス内で同じ処理を3回実行して最後の値を取る(最適化された状態で計測するために)、ということをそれぞれのテストケースで3回実行して真ん中の値を使っています。 コードや使用しているライブラリはリポジトリにあります。 https://www.seasar.org/svn/sandbox/doma/trunk/or-mapper-benchmark/ SQLファイルに記述されたSELECT文を使って10000件検索 19,364,522 (nanoTime) : DomaSqlFileSelectDtoTest 39,396,294 (nanoTime) : S2DaoSqlFileSelectDtoTest 12,013,783 (nanoTime) : S2J
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く