There is no DAO implementation found for class問題の解


iBATISのDAOで書きました
新しいテーブルのCRUD実装後、次の問題が発生しました.

Exception in thread "main" com.ibatis.dao.client.DaoException: There is no DAO implementation found for class com.ccutsesms.mis.dao.impl.BDM in any context. If you've registered multiple implementations of this DAO, you must specify the Context ID for the DAO implementationyou're looking for using the getDao(Class iface, String contextId) method.
	at com.ibatis.dao.engine.impl.StandardDaoManager.getDao(StandardDaoManager.java:64)
	at com.ccutsesms.mis.service.BDMService.getBDM(BDMService.java:20)
	at com.ccutsesms.mis.util.BDMTag.getTags(BDMTag.java:21)
	at test.com.ccutsesms.mis.util.TestTags.main(TestTags.java:19)

私の実現は以下の通りです.
DAO Interface:
com.ccutsesms.mis.dao.IBDM;

DAO implement:
com.ccutsesms.mis.dao.impl.BDM;

DAO configure file:
<daoConfig>
    <context>
        <transactionManager type="SQLMAP">
            <property name="SqlMapConfigResource"
                     value="com/ccutsesms/mis/maps/SqlMapConfig.xml"/>
        </transactionManager>
        ... ...
        <dao interface="com.ccutsesms.mis.dao.IBDM"  
        	implementation="com.ccutsesms.mis.dao.impl.BDM"/>
        ... ...
    </context>
</daoConfig>

DAO service:

public class BDMService {
    static DaoManager daoManager = DaoConfig.getDaoManager();
	public List<BDMDto> getBDM(String bdm_type) {
	IBDM bdm = (IBDM) daoManager.getDao(BDM.class);
         ... ...

後でここが間違っていることに気づいた
IBDM bdm = (IBDM) daoManager.getDao(BDM.class);

次のようになります.
IBDM bdm = (IBDM) daoManager.getDao(IBDM.class);

本当にうっかりしてしまったので、他の人がやっているときと同じように油断しやすいのかもしれません.書いて、警記!!!