問題表現:java
今天調試一個web項目,使用的是hibernate4.1,使用jetty啓動時,沒有任何錯誤很正常。但打成war包放到tomcat的webapps目錄下時,啓動後就報錯了web
關鍵報錯信息以下:apache
Caused by: java.lang.ClassNotFoundException: org.hibernate.util.DTDEntityResolver at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157) ... 65 more
錯誤緣由:tomcat
hibernate3.5之後,hibernate-core已經集成了hibernate-annotations.jar,若本身再配置hibernate-annotations.jar版本與hibernate-core版本不相同,就會形成jar包衝突,從而產生該錯誤。app
解決方法:webapp
如果maven項目,則去除maven中引用的hibernate-annotations。maven
若是是javase工程,則直接刪除:hibernate-annotations-xxx.jar 包就能夠了hibernate
再次啓動tomcat,問題消失。調試