[Seasar-user:14415] [S2Container] インタフェースと実装クラス間の命名規則について

Kuraaku Kenta [E-MAIL ADDRESS DELETED]
2008年 5月 23日 (金) 16:46:24 JST


いつもお世話になっております。kentaと申します。

### 前提 ###
s2-container 2.4.25
sa-struts-1.0.2-rc3

下記のインタフェースと、2つの実装クラスを定義しております。
#インタフェース#
public interface HogeService {
    public void hoge();
}

#実装クラス1#
public class HogeServiceImpl implements HogeService {
    public int hoge(){
         System.out.println("hoge");
     }
}

#実装クラス2#
 public class Hoge2ServiceImpl implements HogeService {
     public int hoge(){
          System.out.println("hoge2 hoge2");
      }
 }

バインディングの設定は何もしていない(デフォルトはorg.seasar.framework.container.autoregister.DefaultAutoNaming?)

### 前提ここまで ###

いま、アクションクラスにpublicなフィールドとして
public HogeService hoge2Service;
を宣言し、実行メソッドにて、hoge2Service.hoge() を記述すると、Hoge2ServiceImpl ではなく、HogeServiceImplのメソッドが呼ばれてしまいます。
また、HogeServiceImpl のクラス名を MogeServiceImpl (Hoge→Moge)  
と変えて実行すると
java.lang.ClassNotFoundException が発生します。
org.seasar.framework.util.ClassUtil.forName() が原因のようですが、任意の実装クラス(上記の場合はHoge2ServiceImpl)を注入するにはどのようにすれば良いのでしょうか?


  

 
---------------------------------
GANBARE! NIPPON! Win your ticket to Olympic Games 2008.
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20080523/fdbe2472/attachment-0001.html>


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