Eclipse RCP Spring 3 Hibernate 4类加载问题

时间:2016-04-05 20:27:10

标签: eclipse spring hibernate eclipse-rcp

我试图通过子类LocalSessionFactoryBean设置注释classess 使用hibernate 3加载Bean xml,直到我改为hibernate 4包。我收到了这个错误:

ClassPathXmlApplicationContext: Exception encountered during context initia
lization - cancelling refresh attempt  

  at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/HibernateException
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2595)
    at java.lang.Class.getConstructor0(Class.java:2895)
    at java.lang.Class.getDeclaredConstructor(Class.java:2066)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:7
8)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapable
BeanFactory.java:1032)
    ... 18 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.HibernateException
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 24 more

我的bean.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"
    xmlns:jms="http://www.springframework.org/schema/jms"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.1.xsd
                http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd" >

    <!-- Transaction Manager Definition -->
    <bean id = "transactionManager"        class = "org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name = "sessionFactory"     ref = "sessionFactory" />
    </bean>


    <bean id="dataSource"            class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    </bean>    

    <bean id="sessionFactory"         class = "customSessionFactory">
        <property name="dataSource"         ref="dataSource" />
        <property name="hibernateProperties">
               <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
            <prop key="hibernate.jdbc.batch_size">10000</prop>
            <prop key="hibernate.show_sql">false</prop>
            <!-- Cache Properties  -->
            <prop key="hibernate.cache.use_second_level_cache">false</prop>
            <prop key="hibernate.cache.use_query_cache">false</prop>
            <prop key="hibernate.generate_statistics">true</prop>
            <prop key="hibernate.cache.use_structured_entries">true</prop>
            <prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</prop>
            <prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory</prop>
            <prop key="net.sf.ehcache.configurationResourceName">ehcache.xml</prop>
               </props>
            </property>
    </bean>

customSessionFactorysetAnnotationClass实体类。 我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

确保您的捆绑包导入org.hibernate包。 这可能不是hibernate 3.x所必需的。

在您的MANIFEST.MF中,将org.hibernate添加到Import-Package:部分。