[Seasar-user:5539] Re: S2Struts でActionを多重継承+HOT DEPLOYした場合に、 AbstractMethodError

原田 [E-MAIL ADDRESS DELETED]
2006年 12月 20日 (水) 09:35:13 JST


原田です。

なるほど。
結構開発が進んでいるもので、どうしたものか悩みどころです。

ちょっと考えて見ます。

ありがとうございます。


"Katsuhiko Nagashima" <[E-MAIL ADDRESS DELETED]> wrote:

> 永島です。
> 
> > Seasar2.4+S2Strutsの現在のおすすめは?
> 
> POJOのActionを利用する場合、
> ExampleのEmployeeのように1画面1Actionとして
> MethodBindingによる実行が良いと思ってます。
> 
> Actionのインターフェースにつきましては、
> Seasar2.4でActionにはインターフェースを使わないことを勧めていますし
> POJO Actionを利用するとクラス数が増えるとの指摘もあったため
> S2Strutsでも1.3からPOJO Actionでもインターフェースがなくても動作するようにしました。
> ですが、無設定を利用する場合、
> struts-configの内容をどこかに追い出す必要があり、
> 管理しやすくするためにインターフェースに追い出すのも良い方法だと思ってます。
> 利用しやすいほうを使うのが良いと思います。
> 
> 複数のActionインターフェースを1つActionで実装することについてですが、
> 現状のS2StrutsでのHOT deployは、1Actionインターフェースを1つのActionで実装するのが
> 前提となっているため、Actionのアノテーションを変更しても反映されない問題が発生します。
> 1Actionインターフェースを1つのActionでの実装とMethodBindingの組み合わせを
> 検討していただけないでしょうか。m(_ _)m
> 
> > Actionに対してURLが一意に決まってしまうと、ちょっと融通がきかないので、インターフェースに
> > Struts-configを追い出すのも考え物かなぁと多少思っています。
> >
> > 例えばPCサイトを作って、そのAction等をそのまま使って携帯サイトを作ろうとしたときに、
> > 機能が同じでもURLが違うと別に作らないといけなくなってしまいます。
> 
> 確かにそうですね。
> 
> 私自身、複数の端末に対して1つのWebアプリを提供したことがないので
> 実際に試した結果ではないのですが、、、
> 
> そのような場合はWildcard Mappingsや
> Struts1.3から導入されたextends(使ったことはなくソースを見ただけですが。。。)を利用し
> struts-configを書いてPOJO Actionや通常のAction(Actionクラスを継承したAction)を
> 設定したほうがよいかもしれません。
> また、ちょっとややこしくなりそうですが、PCサイトは無設定で提供し
> 携帯サイトをstruts-configで提供するということも可能です。
> 
> ただ、表示する内容やFormの項目などが異なる(項目数が少ないとか)のであれば、
> Actionを別々につくりLogicクラスやServiceクラスで
> 共通化を図るほうがよい気もします。
> 
> 以上です。
> 
> 06/12/18 に 原田<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > 原田です。
> >
> > > > デバッガで見ると、そういう感じで動いているようでした。
> > > > 試しに多重実装したImplを継承した空のXxxPostActionImplを作成すると正常に動作しました。
> > > >
> > > XxxActionでXxxPostActionをextendsすると良いのでは、
> > > ないでしょうか。
> >
> > それだとXxxActionのメソッドが2つになってしまうので、NGのようです。
> >
> > > > 試しに多重実装したImplを継承した空のXxxPostActionImplを作成すると正常に動作しました。
> >
> > の方法も、HOT DEPLOY時は大丈夫でしたが、起動時にNGになってしまいました。
> >
> > >
> > > ただ、Seasar2.4では、Actionにはインターフェースを使わないことを
> > > お勧めしています。
> > > Actionは他から利用されるものではなく、ユースケースで
> > > 閉じているものだからです。
> > >
> > > Post系のメソッド名は、doXxxにすると言う規約にしておけば、
> > > AOPもpointcutで簡単に指定できます。
> >
> > Actionに対してURLが一意に決まってしまうと、ちょっと融通がきかないので、インターフェースに
> > Struts-configを追い出すのも考え物かなぁと多少思っています。
> >
> > 例えばPCサイトを作って、そのAction等をそのまま使って携帯サイトを作ろうとしたときに、
> > 機能が同じでもURLが違うと別に作らないといけなくなってしまいます。
> >
> >
> > Seasar2.4+S2Strutsの現在のおすすめは?
> >
> > 以上よろしくお願いします。
> >
> >
> > Yasuo Higa <[E-MAIL ADDRESS DELETED]> wrote:
> >
> > > ひがです。
> > >
> > > > 原田です。
> > > >
> > > > この件、その後調べてみたのですが、以下のようなことだと思います。
> > > >
> > > > ・HOT DEPLOYするにはActionの設定は全自動。
> > > >   ・XxxAction,XxxPostActionの実装は、全自動ではそれぞれXxxActionImpl、XxxPostActionImplで無ければならない。
> > > >   ・1つのImplで多重継承した場合、XxxPostActionImplが無いので、エラーになる。
> > > >
> > > > デバッガで見ると、そういう感じで動いているようでした。
> > > > 試しに多重実装したImplを継承した空のXxxPostActionImplを作成すると正常に動作しました。
> > > >
> > > XxxActionでXxxPostActionをextendsすると良いのでは、
> > > ないでしょうか。
> > >
> > > ただ、Seasar2.4では、Actionにはインターフェースを使わないことを
> > > お勧めしています。
> > > Actionは他から利用されるものではなく、ユースケースで
> > > 閉じているものだからです。
> > >
> > > Post系のメソッド名は、doXxxにすると言う規約にしておけば、
> > > AOPもpointcutで簡単に指定できます。
> > >
> > > Yasuo Higa
> > > The Seasar Project
> > > _______________________________________________
> > > Seasar-user mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> 
> 
> -- 
> Katsuhiko Nagashima
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user




Seasar-user メーリングリストの案内