2012-03-04 65 views
0

我越來越:找不到類AnnotationSessionFactoryBean

root cause 

java.lang.ClassNotFoundException: 
org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701) 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546) 
org.springframework.util.ClassUtils.forName(ClassUtils.java:258) 
org.springframework.beans.factory.support.AbstractBeanDefinition.resolve 

我在網上搜索,大多發現,人們誰了同樣的問題,只是沒有了在正確的地方正確的罐子。 如果我看着我的WEB-INF/lib文件夾中的Tomcat我得到下面的清單:

-rw-r--r-- 1 Jonas admin 443432 3 mrt 16:48 antlr-2.7.6.jar 
-rw-r--r-- 1 Jonas admin 445288 12 feb 18:47 antlr-2.7.7.jar 
-rw-r--r-- 1 Jonas admin  4467 12 feb 18:43 aopalliance-1.0.jar 
-rw-r--r-- 1 Jonas admin 43033 4 mrt 14:08 asm-3.1.jar 
-rw-r--r-- 1 Jonas admin 278682 4 mrt 14:08 cglib-2.2.jar 
-rw-r--r-- 1 Jonas admin 559366 4 mrt 14:08 commons-collections-3.1.jar 
-rw-r--r-- 1 Jonas admin 575389 12 feb 18:47 commons-collections-3.2.1.jar 
-rw-r--r-- 1 Jonas admin 60686 3 mrt 17:17 commons-logging-1.1.1.jar 
-rw-r--r-- 1 Jonas admin 313898 12 feb 18:47 dom4j-1.6.1.jar 
-rw-r--r-- 1 Jonas admin 365546 4 mrt 13:59 hibernate-annotations-3.5.6-Final.jar 
-rw-r--r-- 1 Jonas admin 71283 4 mrt 13:59 hibernate-commons-annotations-3.2.0.Final.jar 
-rw-r--r-- 1 Jonas admin 81271 3 mrt 20:15 hibernate-commons-annotations-4.0.1.Final.jar 
-rw-r--r-- 1 Jonas admin 3123360 4 mrt 14:08 hibernate-core-3.6.10.Final.jar 
-rw-r--r-- 1 Jonas admin 4317092 3 mrt 20:15 hibernate-core-4.1.0.Final.jar 
-rw-r--r-- 1 Jonas admin 426671 4 mrt 14:08 hibernate-entitymanager-3.6.10.Final.jar 
-rw-r--r-- 1 Jonas admin 476002 3 mrt 20:15 hibernate-entitymanager-4.1.0.Final.jar 
-rw-r--r-- 1 Jonas admin 102661 3 mrt 20:15 hibernate-jpa-2.0-api-1.0.1.Final.jar 
-rw-r--r-- 1 Jonas admin 633312 4 mrt 14:08 javassist-3.12.0.GA.jar 
-rw-r--r-- 1 Jonas admin 648253 3 mrt 20:15 javassist-3.15.0-GA.jar 
-rw-r--r-- 1 Jonas admin 60539 3 mrt 20:15 jboss-logging-3.1.0.CR2.jar 
-rw-r--r-- 1 Jonas admin 11209 3 mrt 20:15 jboss-transaction-api_1.1_spec-1.0.0.Final.jar 
-rw-r--r-- 1 Jonas admin 15071 4 mrt 14:08 jta-1.1.jar 
-rw-r--r-- 1 Jonas admin 23445 4 mrt 13:59 slf4j-api-1.5.8.jar 
-rw-r--r-- 1 Jonas admin 25496 12 feb 18:43 slf4j-api-1.6.1.jar 
-rw-r--r-- 1 Jonas admin 331471 3 mrt 17:17 spring-aop-3.1.1.RELEASE.jar 
-rw-r--r-- 1 Jonas admin 53081 3 mrt 17:16 spring-asm-3.1.1.RELEASE.jar 
-rw-r--r-- 1 Jonas admin 589824 3 mrt 17:17 spring-beans-3.1.1.RELEASE.jar 
-rw-r--r-- 1 Jonas admin 831068 3 mrt 17:17 spring-context-3.1.1.RELEASE.jar 
-rw-r--r-- 1 Jonas admin 107225 3 mrt 17:17 spring-context-support-3.1.1.RELEASE.jar 
-rw-r--r-- 1 Jonas admin 449324 3 mrt 17:17 spring-core-3.1.1.RELEASE.jar 
-rw-r--r-- 1 Jonas admin 176311 3 mrt 17:17 spring-expression-3.1.1.RELEASE.jar 
-rw-r--r-- 1 Jonas admin 544291 3 mrt 17:17 spring-web-3.1.1.RELEASE.jar 
-rw-r--r-- 1 Jonas admin 573701 3 mrt 17:16 spring-webmvc-3.1.1.RELEASE.jar 
-rw-r--r-- 1 Jonas admin 109318 12 feb 18:46 xml-apis-1.0.b2.jar 

因此,所有必要的罐子在那裏。所以我不明白爲什麼我不斷收到classNotFound異常。

這是我的hibernate.hbm.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 

<!-- Hibernate session factory --> 
<bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 

    <property name="dataSource"> 
     <ref bean="dataSource" /> 
    </property> 

    <property name="hibernateProperties"> 
     <props> 
      <prop  key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 
     </props> 
    </property> 

    <property name="annotatedClasses"> 
     <list> 
      <value>org.geiregat.jonas.entity</value> 
     </list> 
    </property> 

</bean> 
</beans> 

回答

5

因此,所有必要的罐子有

不,他們不是。 AnnotationSessionFactoryBean位於spring-orm JAR中,您沒有。

致謝GrepCode

+0

謝謝!我在另一篇文章中讀到,那個spring-orm是不需要的!猜猜他錯了! – 2012-03-04 13:30:09

1

您需要spring-orm.jar,因爲skaffman正確寫入。但你有更多的問題比這個更多。中安裝了多個版本的幾個庫,這將在最迷惑的類加載器,並在更糟糕的會導致應用程序錯誤或不能工作(尤其是當有版本之間不兼容的變化):

antlr-2.7.6.jar        # delete this 
antlr-2.7.7.jar 

commons-collections-3.1.jar     # and this 
commons-collections-3.2.1.jar 

hibernate-annotations-3.5.6-Final.jar   # and this 
hibernate-commons-annotations-3.2.0.Final.jar # and this 
hibernate-commons-annotations-4.0.1.Final.jar 
hibernate-core-3.6.10.Final.jar # and this 
hibernate-core-4.1.0.Final.jar 
hibernate-entitymanager-3.6.10.Final.jar  # and this 
hibernate-entitymanager-4.1.0.Final.jar 
hibernate-jpa-2.0-api-1.0.1.Final.jar 

javassist-3.12.0.GA.jar      # and this 
javassist-3.15.0-GA.jar 

slf4j-api-1.5.8.jar       # and this 
slf4j-api-1.6.1.jar