[Seasar-user:495] Re: 例外の出方の改善案
B gluegent.com Masataka Kurihara
kurihara
2004年 3月 22日 (月) 18:01:16 JST
栗原です。
やはり、
> 13)<arg>なしのAUTOモードで動かしながら、プロパティをセットしたとき
がRC1でも出るようです。例外は変わって、NoSuchConstructorRuntimeException
です。改善案の他の例はRC1でざっと試したところOKだと思います。
#例外表記
org.seasar.framework.exception.NoSuchConstructorRuntimeException:
[ESSR0064]sample.org.seasar.TestComponentImpl, TestComponentImpl(),
java.lang.NoSuchMethodException:
sample.org.seasar.TestComponentImpl.<init>()
at org.seasar.framework.util.ClassUtil.getConstructor
(ClassUtil.java:96)
再現コードは、以下のとおりです。
#ブートストラップ
package sample.org.seasar;
import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.S2ContainerFactory;
public class Bootstrap {
public static void main(String[] args) {
String path = "sample/org/seasar/test.xml";
S2Container container = S2ContainerFactory.create(path);
TestComponent component =
(TestComponent)container.getComponent(TestComponent.class);
component.getMessage();
}
}
#引数用コンポーネント定義
package sample.org.seasar;
public interface TestArg {
public String getName();
}
#引数用コンポーネント実装
package sample.org.seasar;
public class TestArgImpl implements TestArg {
public String getName() {
return "TestArg alive!";
}
}
#取得コンポーネント定義
package sample.org.seasar;
public interface TestComponent {
public String getMessage();
}
#取得コンポーネント実装
package sample.org.seasar;
public class TestComponentImpl implements TestComponent {
private TestArg arg;
private String message;
public TestComponentImpl(TestArg arg) {
this.arg = arg;
}
public void setMessage(String message) {
this.message = message;
}
public String getMessage() {
return message + " & arg(" + arg.getName() + ")";
}
}
#コンテナ設定XML
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE components
PUBLIC "-//SEASAR//DTD S2Container//EN"
"http://www.seasar.org/dtd/components.dtd">
<components>
<component name="testAdvice"
class="org.seasar.framework.aop.advices.TraceAdvice"/>
<component name="testArg" class="sample.org.seasar.TestArgImpl"/>
<component class="sample.org.seasar.TestComponentImpl">
<!--arg>testArg</arg-->
<property name="message">'kurihara'</property>
<aspect>traceAdvice</aspect>
</component>
</components>
以上です。
--
株式会社グルージェント
栗原 傑享(くりはら まさたか)
渋谷区渋谷3-7-6 第6矢木ビル4F
TEL:03-5469-8869 FAX:03-5469-8879
URL:http://www.gluegent.com/
--
> 栗原です。
>
> > > 13)<arg>なしのAUTOモードで動かしながら、プロパティをセットしたとき
> > > org.seasar.framework.exception.lang.NoSuchMethodRuntimeException:
> > > [ESSR0057]クラス(org.seasar.extention.SpeakerManagerImpl)のメソッド
> > > (<<init>>())が見つかりません
> > > at org.seasar.framework.util.reflect.ClassUtil.getConstructor
> > > (ClassUtil.java:86)
> > >
> > うごくはずですけど。
> > test.org.seasar.framework.container.deployer.SingletonComponentDeployerTest
> > #testDeployAutoManualProperty
>
> おや、そうですか。この例外の出方を見る環境が家のPCなので、今晩見て
> おきます。Aspectのところももう一回考えておきますね。返事は会社にまた
> 出てきてなので、明日になります。ではでは。
>
> --
> 株式会社グルージェント
> 栗原 傑享(くりはら まさたか)
> 渋谷区渋谷3-7-6 第6矢木ビル4F
> TEL:03-5469-8869 FAX:03-5469-8879
> URL:http://www.gluegent.com/
> --
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> http://lists.sourceforge.jp/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内