読者です 読者をやめる 読者になる 読者になる

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>

とかいてみたら、先に進みました。
いやまだ他のエラーがでるんですけどね。