Exception in thread "pool-2-thread-1" java.lang.NoClassDefFoundError:

其實這個錯誤情況根本無法給我準確的定位到錯誤代碼。

[color=blue]單例的代碼[/color]

public class DAOFactory {

//....省略

private static class SingletonHolder {
//只有在調用的時候纔會初始化!而且線程安全。
static DAOFactory instance = new DAOFactory();
}

public static DAOFactory getInstance() {
return SingletonHolder.instance;
}
}


期間我加了個ControlDao的一些ibatis的class和module竟然報錯誤:
[color=red]Exception in thread "pool-2-thread-1" java.lang.NoClassDefFoundError: Could not initialize class com.xxxx.dao.DAOFactory$SingletonHolder
[/color]


找啊找,最後我試着改成,不用單例:

public class DAOFactory {

//....省略

public static DAOFactory getInstance() {
return new DAOFactory():
}
}


結果就出現了正確的ibatis錯誤定位了:
[color=red]java.lang.RuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMap/insert'. Cause: com.ibatis.common.beans.ProbeException: There is no READABLE property named 'test' in class 'com.xxx.module.Control'[/color]

終於找到原因了,竟然是我的sql語句沒寫好,改好,再改回原來的單例,運行正常了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章