Tôi là người mới sử dụng Spring và hibernate nên tôi đang cố gắng triển khai một số ứng dụng web đơn giản dựa trên Spring 3 + hibernate 4 trong khi khởi động tomcat Tôi có ngoại lệ này:
java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethods(Class.java:1791)
...
Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
Tôi thấy rằng lớp này ở trong hibernate-core cho hibernate 3 nhưng tôi không tìm thấy nó trong hibernate 4.
Một phần của context.xml của tôi cho sự bền bỉ:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
<property name="url" value="jdbc:oracle:thin:@IP_Address:SID"/>
<property name="username" value="xxx"/>
<property name="password" value="xxx"/>
<property name="initialSize" value="5"/>
<property name="maxActive" value="20"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.huawei.vms.user"/>
<property name="hibernateProperties">
<props>
<prop key="dialect">org.hibernate.dialect.Oracle10gDialect</prop>
</props>
</property>
</bean>
Vui lòng giúp tôi tìm hiểu lý do tại sao nó đang cố gắng tải CacheProvider vì tôi không có bất kỳ cài đặt nào cho điều đó trong context.xml và tôi phải thêm jar nào trong dự án của mình. Cảm ơn!