HotDeployではapp.diconにも各種diconが必須
昨日の
エラーの内容は、このDaoの一つにAbstractDaoの実装サブクラスがあるのですが、そいつを実行しようとするときに (interface org.seasar.dao.DaoMetaDataFactory)が見つからないのでnullを設定します となってしまうというもの。 dao.diconをincludeしてるんですけどねぇ。
を回避する方法がわかりました。
app.diconにdao.diconをincludeする。これです。
えーと、つまり、今後は推奨されないかもしれないけど、今のところs2container.diconで各種のmyコンポーネントを定義しているわけです。
で、これらのinstanceDefがREQUESTなので、リクエストがあった場合にインスタンス化されるわけですが、対象コンポーネントにDIするコンポーネント群はapp.dicon系列のコンテナから検索されるわけですね。
で、昨日の段階では
app.dicon: <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN" "http://www.seasar.org/dtd/components23.dtd"> <components> <include path="s2struts.dicon"/> </components>
なんてシンプルに書いておいたもんだから、そりゃーDaoMetaDataFactoryもみつからないはず。
とりあえず、
app.dicon: <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN" "http://www.seasar.org/dtd/components23.dtd"> <components> <include path="s2struts.dicon"/> <include path="aop.dicon"/> <include path="j2ee.dicon"/> <include path="dao.dicon"/> </components>
とかいてみたら、先に進みました。
いやまだ他のエラーがでるんですけどね。