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

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2006年 12月 19日 (火) 01:30:44 JST


小林 (koichik) です.

Date:    Mon, 18 Dec 2006 11:56:18 +0900
From:    原田 <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:5512] S2Struts でActionを多重継承+HOT DEPLOYした場合に、 AbstractMethodError

>  ・HOT DEPLOYするにはActionの設定は全自動。
>   ・XxxAction,XxxPostActionの実装は、全自動ではそれぞれXxxActionImpl、XxxPostActionImplで無ければならない。
>   ・1つのImplで多重継承した場合、XxxPostActionImplが無いので、エラーになる。

現状だと,convention.dicon で次のように設定することで
動作するようになるかと思います.

<component class="org.seasar.framework.convention.impl.NamingConventionImpl">
  <initMethod name="addRootPackageName">
    <arg>"..."</arg>
  </initMethod>
  <initMethod name="addInterfaceToImplementationClassName">
    <arg>"******LoginPostAction"</arg>
    <arg>"******LoginActionImpl"</arg>
  </initMethod>
</component>


とはいえ,これを Action の数だけ設定するのは現実的ではないですね.

  <initMethod name="addInterfaceToImplementationClassPattern">
    <arg>"(.*)PostAction"</arg>
    <arg>"\\1ActionImpl"</arg>
  </initMethod>

みたいに指定できるようにするということでどうでしょう?


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




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