タグ

ブックマーク / ngtn.hatenadiary.org (3)

  • Hot Deploy利用時に、Hot Deploy対象外クラス内でHot Deploy対象クラスを使うための正しい作法は? - Writing Some Code

    「Hot Deploy」「Hot Deploy」連呼によって、今までで一番長いタイトル。。 気を取り直して題を。 SeasarのHot Deploy機能はアプリケーションサーバーの再起動不要で修正コードがすぐに反映されるという便利な反面、ちょっとフレームワークの拡張をした時に「Hot Deployでは動くのにCool Deployでは動かない」(またはその逆)といったことにハマることが多いように思います。 S2Container体やHot Deploy機能の理解が浅いせいもあって、自分も何回泣かされたことか。。。 今回もSAStrutsを使っていて遭遇してしまいました。 Hot Deploy対象外クラス(RequestProcessorやtaglibなど)内で、HotDeploy対象のServiceクラスやDtoクラスをgetComponentするような以下のコードを書くとClassC

    Hot Deploy利用時に、Hot Deploy対象外クラス内でHot Deploy対象クラスを使うための正しい作法は? - Writing Some Code
  • HOT deployとCOOL deployで挙動が違う? - Writing Some Code

    少し前に各所で話題にのぼっていたid:cypher256さんの一連のSAStruts関連のエントリー。 実際の案件に適用しての話なので、すごく参考になります。 このエントリーの中で@Reset アノテーション - cypher256's blogを試してみたのですが、なぜか動かない。 デバッグしてみたらRequestProcessorのサブクラスで取得した@Resetアノテーションがnullになっている。 しかも、初回のアクセスの場合だけはちゃんと取得できるという状況。 もしやと思ってCOOL deployにしてみたら、ちゃんと動いた。 うーん、この辺の挙動の違いって謎。

    HOT deployとCOOL deployで挙動が違う? - Writing Some Code
  • メッセージの渡し方 - Writing Some Code

    生StrutsのActionクラスではsaveMessagesメソッドを使えば、ビューへメッセージを渡せますが、SAStrutsではどうやって渡すのか調べてみたら、ActionMessagesUtilというユーティリティクラスが用意されていました。 Actionクラスでの使い方は以下のような感じ。 public class HogeAction { public HttpServletRequest request; // 中略 @Execute(input = "index.jsp") public String submit() { ActionMessages messages = new ActionMessages(); messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("xxxxxx")); // xxx

    メッセージの渡し方 - Writing Some Code
  • 1