2016-04-16 4 views
0

J'essaye d'usine de session autowired à couche de dao. J'ai l'erreur: java.lang.NoClassDefFoundError: J'ai verrouillé plus de configurations mais personne ne travaille pour moi. Ceci est mon dao: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); 
    } 

Je fichier de configuration veille prolongée:

<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> 

Je crée le fichier xml avec des haricots:

   <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> 

S'il vous plaît aider si quelqu'un sait où est ma faute.

+2

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

Répondre

0

Étant donné que vous utilisez Spring, il peut être préférable d'oublier d'utiliser le fichier hibernate.cfg.xml et de remplir votre fichier XML avec les paramètres requis. Voir le xml ci-dessous si cela aide. Cet exemple utilise c3p0 comme source de données pour le regroupement de connexions. Un TransactionTemplate est également disponible, mais commenté. Décommentez si vous en avez besoin.

<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"/>-->