2016-04-16 8 views
0

Я пытаюсь авторизовать фабрику сеансов до уровня dao.I есть ошибка: java.lang.NoClassDefFoundError: Я заблокировал больше настроек, но никто не работает для меня. Это мой дао:Can 't autowired SessionFactory для dao

@Component 
     public class UserDaoImpl implements UserDao{ 
    @Autowired 
    private SessionFactory sessionFactory; 


    @Override 
     public void saveUser(User user) { 
    sessionFactory.getCurrentSession().save(user); 
    } 

У меня есть спящий конфигурационный файл:

<hibernate-configuration> 
    <session-factory> 
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306 /vezba2?zeroDateTimeBehavior=convertToNull</property> 
<property name="hibernate.connection.username">root</property> 
<mapping class="com.entiti.User"/> 
<mapping class="com.entiti.Rezervacija"/> 
    </session-factory> 
</hibernate-configuration> 

я создаю XML-файл с фасолью:

   <context:annotation-config/> 

    <bean id="user" class="com.dao.UserDaoImpl"> 
    <property name="sessionFactory" ref="sessionFactory"></property> 
     </bean> 
    <bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <property name="configLocation"> 
     <value>classpath*:hibernate.cfg.xml</value> 
     </property> 
    </bean> 

Пожалуйста, помогите, если кто-то знает, где моя вина.

+2

http://stackoverflow.com/questions/34413/why-am-i-getting-a-noclassdeffounderror-in-java – Hannes

ответ

0

Поскольку вы используете Spring, лучше забыть об использовании файла hibernate.cfg.xml и вместо этого заполнить свой XML-файл необходимыми настройками. См. Xml ниже, если это помогает. В этом примере используется c3p0 в качестве источника данных для объединения пулов. TransactionTemplate также доступен, но прокомментирован. Раскомментируйте, если вам это нужно.

<context:annotation-config/> 
<bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" > 
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/vezba2"/>   
    <property name="user" value="root"/> 
    <property name="password" value="root"/>   
    <property name="driverClass" value="com.mysql.jdbc.Driver" /> 
</bean> 
<bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" depends-on="myDataSource"> 
    <property name="dataSource" ref="myDataSource" /> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
      <prop key="hibernate.hbm2ddl.auto">update</prop>    
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.cache.use_second_level_cache">false</prop> 
      <prop key="hibernate.format_sql">true</prop> 
      <prop key="hibernate.use_sql_comments">true</prop> 
      <prop key="hibernate.connection.charSet">UTF-8</prop> 
     </props> 
    </property> 
    <property name="annotatedClasses"> 
     <list> 
      <value>com.entiti.User</value> 
      <value>com.entiti.Rezervacija</value>      
     </list> 
    </property> 
</bean> 
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory"> 
     <ref bean="mySessionFactory"/> 
    </property> 
</bean> 
<!--<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate" p:transactionManager-ref="transactionManager"/>--> 

 Смежные вопросы

  • Нет связанных вопросов^_^