[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 メーリングリストの案内