學習SSH中遇到的問題總結
1、使用Hibernate的時候,想讓Hiberante根據domain object物件生成對應的資料庫表,配置hibernate.cfg.xml中的屬性hbm2ddl.auto為update,執行之後,沒有生成對應的資料庫表同時沒有提示錯誤。
解決方法:因為之前的domain object是根據資料庫表自動生成,在<class/>中有個屬性catalog="hibernate",hibernate為當時我建的資料庫,而我在新專案中新建了一個數據庫為school,jdbc:mysql://127.0.0.1:3306/school?useUnicode=true&characterEncoding=UTF-8,連個資料庫不一樣,導致表建立不成功,去掉catalog="hibernate"之後,資料庫表建立成功。
2、在使用OSCache的時候,會報Caused by: java.lang.ClassNotFoundException:org.apache.commons.logging.LogFactory的錯誤,原因是OSCache用到了log4j,匯入MyEclipse中的Hibernate Capabilities也沒有用,原因是還差一個jar包,common-logging.jar。
3、在使用Junit4對struts2的action進行測試時,丟擲Caused by: java.lang.ClassNotFoundException: userAction這個錯誤。
對spring和struts2集進行測試時,test用例必須繼承StrutsSpringTestCase類,並且需要有檔名為applicationContext.xml的配置檔案,因為預設是載入這個檔案的,如果沒有會報Caused
by: java.lang.ClassNotFoundException: userAction這個錯誤。
還有一種方法是通過覆蓋父類中的protected java.lang.String getContextLocations()來指定你的配置檔案。