ふたつの川うるおう日記
2006-08-19 (Sat)
_ [Java][Seasar] コンストラクタを探さないでー (解決)
trunk/s2struts-exampleを見ながらHotDeploy試そうと移植してみるも、S2Directory用のDao Interfaceのコンストラクタを探そうとしてエラーになってしまい困り中。trunk/s2struts-exampleのS2DaoのDaoクラスも同じくインタフェースだけなのにこっちはちゃんと動いてるので、S2Dao自体に何か細工されたのかなとChangeLog見ても特になさそう・・・。なんだろこれ。
ERROR 2006-08-19 13:28:19,942 [http-8080-Processor24] handled exception, [ESSR0064]クラス(org.seasar.server.members.directorydao.PosixAccountDtoDao)のコンストラクタ(PosixAccountDtoDao())が見つかりません org.seasar.framework.exception.NoSuchConstructorRuntimeException: [ESSR0064]クラス(org.seasar.server.members.directorydao.PosixAccountDtoDao)のコンストラクタ(PosixAccountDtoDao())が見つかりません at org.seasar.framework.util.ClassUtil.getConstructor(ClassUtil.java:135) at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assembleDefault(AbstractConstructorAssembler.java:87) at org.seasar.framework.container.assembler.AutoConstructorAssembler.doAssemble(AutoConstructorAssembler.java:40) at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assemble(AbstractConstructorAssembler.java:50) at org.seasar.framework.container.deployer.PrototypeComponentDeployer.deploy(PrototypeComponentDeployer.java:37) at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:98) at org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:113) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindAuto(AbstractBindingTypeDef.java:149) at org.seasar.framework.container.assembler.BindingTypeShouldDef.doBind(BindingTypeShouldDef.java:51) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:67) at org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:63) at org.seasar.framework.container.deployer.PrototypeComponentDeployer.deploy(PrototypeComponentDeployer.java:38) at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:98) at org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:113) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindAuto(AbstractBindingTypeDef.java:149) at org.seasar.framework.container.assembler.BindingTypeShouldDef.doBind(BindingTypeShouldDef.java:51) at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:67) at org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:63) at org.seasar.framework.container.deployer.RequestComponentDeployer.deploy(RequestComponentDeployer.java:62) at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:98) at org.seasar.struts.pojo.MethodBinding.invoke(MethodBinding.java:62) at org.seasar.struts.pojo.MethodBinding.invoke(MethodBinding.java:54) at org.seasar.struts.taglib.InitializeTag.doStartTag(InitializeTag.java:41) at org.seasar.mayaa.impl.engine.processor.JspProcessor.doStartProcess(JspProcessor.java:260) ...
public interface PosixAccountDtoDao {
public static final Class BEAN = PosixAccountDto.class;
public int insertPosixAccount(PosixAccountDto posixAccountDto);
public int updatePosixAccount(PosixAccountDto posixAccountDto);
public int deletePosixAccount(PosixAccountDto posixAccountDto);
public PosixAccountDto getPosixAccount(PosixAccountDto posixAccountDto);
public List getPosixAccountList();
}
[19:24追記] DirectoryDaoOndemandCreatorってCreatorのsetterをtypoしてただけでした_| ̄|○。というわけで解決しました。
[]



ども。Kvasirでもhotdeployでいろいろハマりまくりですが、そういうノウハウを蓄積するWikiとかあればいいんですけどね…。ってSeasar Wikiに書けばいいのか。^^;
ですね、まだリリースされてないのでリリースされてもう一度はまったところ全部確認してWikiに書こうと思っています。でも、よく考えると、とりあえずもう既に試している方は他にもたくさんいるかもしれないので、注意書きで「リリース前なのでまだ変わるかも」って書いてもう書いてもいいかもしれませんね。というわけで後で書こうと思います。Skirnirさんのハマったところも是非!