[Seasar-user:16465] TeedaTestCase の org.seasar.framework.exception.NoSuchConstructorRuntimeException

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2008年 12月 8日 (月) 16:44:55 JST


お世話になります。金と申します。

現在Teeda + S2DAO+DBFluteでテストを行っております。
Serviceクラスを作成し、テストを行っていますがエラーが発生してしまい
困っています。Serviceクラス(DosBaseReportService )は、AbstactReportService というクラスを継承しており、コンストラクタで親クラスのコンストラクタを呼んでいますが、どうやらsuper()のところで
org.seasar.framework.exception.NoSuchConstructorRuntimeException
が発生しているようです。

親クラスがDIされていないことが理由だとは思うのですが、回避策が思い浮かばず、過去ログをさがしても該当するものが見つかりません。

以下にソースを記載します。

/****
 * テストクラス
 *
 */
public class DosBaseServiceTest extends TeedaTestCase{

    DosBaseReportService dosBaseReportService;
    
    @Override
     public void setUp() throws Exception {
        include("dbflute.dicon");
        include("aop.dicon");
        include("app_aop.dicon");
        include("dxo.dicon");
        include("teedaExtension.dicon");
        include("convention.dicon");
     }
    public void testSetdata() throws IOException{

        String path ="C";

        DosBaseReportService dosBaseReportService = new    
    DosBaseReportService(path);
        dosBaseReportService.writeExcel();
    }


/****
* テスト対象の親クラス
*
*/
public abstract class AbstactReportService {
        public HSSFWorkbook workbook;
        public HSSFSheet sheet;
        public HSSFRow row;
        public HSSFCell cell;
        public POIUtils poiUtils;
        public FileInputStream fileInputStream;

        public int flag;
   
        public AbstactReportService(String path)throws IOException{
                path = getTemplatePath() + path;
                fileInputStream = new FileInputStream(path);
                workbook = new HSSFWorkbook(fileInputStream);
                sheet = workbook.getSheetAt(0);
                poiUtils = new POIUtils(workbook,sheet);
        }
}
/****
*テスト対象クラス
*
/
public class DosBaseReportService extends AbstactReportService{
    private static String path;

    public int flag;
    public DosBaseReportService(String path)throws IOException {
        super(path);
    }
    
    public void writeExcel(){
        //TODO ロジック実行
    }
}

org.seasar.framework.exception.NoSuchConstructorRuntimeException: [ESSR0064]クラス(nsdos.service.DosBaseReportService$$EnhancedByS2AOP$$1682a53)のコンストラクタ(DosBaseReportService$$EnhancedByS2AOP$$1682a53())が見つかりません
    at org.seasar.framework.util.ClassUtil.getConstructor(ClassUtil.java:242)
    at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assembleDefault(AbstractConstructorAssembler.java:114)
    at org.seasar.framework.container.assembler.AutoConstructorAssembler.doAssemble(AutoConstructorAssembler.java:44)
    at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assemble(AbstractConstructorAssembler.java:55)
    at org.seasar.framework.container.deployer.PrototypeComponentDeployer.deploy(PrototypeComponentDeployer.java:42)
    at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:111)
    at org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:129)
    at org.seasar.framework.unit.S2FrameworkTestCase.getComponent(S2FrameworkTestCase.java:176)
    at org.seasar.framework.unit.S2FrameworkTestCase.bindField(S2FrameworkTestCase.java:703)
    at org.seasar.framework.unit.S2FrameworkTestCase.bindFields(S2FrameworkTestCase.java:672)
    at org.seasar.framework.unit.S2FrameworkTestCase.runBare(S2FrameworkTestCase.java:304)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:120)
    at junit.framework.TestSuite.runTest(TestSuite.java:230)
    at junit.framework.TestSuite.run(TestSuite.java:225)
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.lang.NoSuchMethodException: nsdos.service.DosBaseReportService$$EnhancedByS2AOP$$1682a53.<init>()
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.getConstructor(Unknown Source)
    at org.seasar.framework.util.ClassUtil.getConstructor(ClassUtil.java:240)
    ... 22 more


お手数ですが、ご存知の方がいらっしゃいましたらご回答ください。
よろしくお願いいたします。
 

 
---------------------------------
Power up the Internet with Yahoo! Toolbar.
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20081208/ed5c9177/attachment-0001.html>


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