[Seasar-user] $B!Z<ALd![(BRulet$B$N(BdoExecute$B%a%=%C%I$K$D$$$F(B
B mba.nifty.ne.jp $B?";3G=@.B
ueyama
2003年 11月 12日 (水) 15:43:33 JST
植山です。
Ruletって、doExecuteメソッドは複数定義できないのでしょうか?
下記のようにRuletを定義して呼び出すとエラーになりました。
「引数の数が違う!」って叫んでますね。
ちなみに、main = (AppA) Nazuna.executeRulet(RULET_CLASS_NAME, display,
new Integer(1));
なら正常に動作します。
調査よろしくお願いします。
---(参考までに:呼び出されるRulet)---
package examples.swt;
import org.eclipse.swt.widgets.Display;
import org.seasar.nazuna.Rulet;
import examples.swt.AppA;
public class AppARulet extends Rulet {
public AppA doExecute(Display d0) {
return new AppA(d0);
}
public AppA doExecute(Display d0, int i0) {
return new AppA(d0);
}
}
------(Rulet呼び出し部)-----
AppA main;
try {
main = (AppA) Nazuna.executeRulet(RULET_CLASS_NAME, display);
Shell shell = main.open();
} catch (SeasarException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
----(エラーメッセージ)---
org.seasar.util.SeasarException: [ESSR0017]Exception occurred, because
java.lang.IllegalArgumentException: wrong number of arguments
at
org.seasar.util.SeasarException.convertSeasarException(SeasarException.j
ava:104)
at
org.seasar.util.SeasarException.convertSeasarException(SeasarException.j
ava:95)
at org.seasar.util.Reflector.invoke(Reflector.java:297)
at
org.seasar.nazuna.NazunaTransAttribute$Supports.invoke(NazunaTransAttrib
ute.java:60)
at org.seasar.nazuna.RuletFacade.execute(RuletFacade.java:72)
at org.seasar.nazuna.Nazuna.executeRulet(Nazuna.java:64)
at org.seasar.nazuna.Nazuna.executeRulet(Nazuna.java:31)
at examples.swt.swtCtlClient.main(swtCtlClient.java:24)
Caused by: java.lang.IllegalArgumentException: wrong number of arguments
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.seasar.util.Reflector.invoke(Reflector.java:293)
... 5 more
以上です。
Seasar-user メーリングリストの案内