IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

utiliser Hibernate avec Spring


Sujet :

Spring Java

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Points : 16
    Points
    16
    Par défaut utiliser Hibernate avec Spring
    salut les membres
    je viens de debuter avec Spring et j'arrive pas à cohabiter Spring et Hibernate. voila mon fichier de configuration config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    <?xml version="1.0" encoding="windows-1252" ?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    	<property name="driverClassName">
    		<value>oracle.jdbc.OracleDriver</value>
    	</property>
    	<property name="url">
    		<value>jdbc:oracle:thin:@srv_data:1521:labdb</value>
    	</property>
    	<property name="username">
    		<value>saeb</value>
    	</property>
    	<property name="password">
    		<value>saeb</value>
    	</property>
    </bean>
    <bean id="sessionFactoryBean" 
    class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    	<property name="dataSource">
    		<ref bean="dataSource" />
    	</property>
    	<property name="hibernateProperties">
    		<props>
    			<prop key="hibernate.dialect">
    			org.hibernate.dialect.Oracle9Dialect
    			</prop>
    			<prop key="hibernate.show_sql">false</prop>
    			<prop key="hibernate.use_outer_join">true</prop>
    		</props>
    	</property>
    	<property name="mappingResources">
    		<list>
    			<value>xxx/model/Client.hbm.xml</value>
    			<value>xxx/model/Operation.hbm.xml</value>
    		</list>
    	</property>		
    </bean>
    <bean id="basicDataDao" class="xxx.integration.ClientData">
    	<property name="sessionFactory">
    		<ref bean="sessionFactoryBean" />
    	</property>
    </bean>
    Au moment ou je veux me servir des methodes "getHibernateTemplate()" ou "getSessionFactory()" j'obtiens tjs la fameuse "NULL" (on dirait que mon fichier n'est pas deployé).

    Plus que ça, lorsque j'execute"
    sessionFactory=(SessionFactory) factory.getBean("sessionFactoryBean");"
    j'obtien l'erreur ci-dessous malgré que toutes mes librairies sont ajoutées au projet (spring.jar, hibernate3.jar, spring-hibernate.jar, spring-dao.jar....):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactoryBean' defined in class path resource [config.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: net/sf/hibernate/HibernateException
    java.lang.NoClassDefFoundError: net/sf/hibernate/HibernateException
    si quelq'un peut m'aider, je serais trés reconnaissant.
    THINKS

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    et le contenu de ton web.xml ?

    et le source de ton dao ?

    y a une utilsation de HibernateException pas correcte ... classe pas trouvé
    trouve l'origine ...(ca proviendra pas du web.xml mais je suis curieux de voir l'utilisation de spring s il est définit)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    salut,
    En fait, le problème viendrait du fait que tu as déployé le jar de la version 3 de Hibernate (hibernate3.jar) alors que dans la configuration du bean "sessionFactoryBean" tu continues à utiliser l'ancienne version. Il te faut donc mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <bean id="sessionFactoryBean" 
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    Bien remarquer le hibernate3 dans le nom du package.
    Voilà, je pense que ça devrait résoudre le problème du java.lang.NoClassDefFoundError
    Tiens, je pense aussi que tu devrais vérifier la déclaration de la dtd dans ton fichier de config Spring, parce que ça change si tu utilises Spring 2.0. Vérifie bien dans la doc, là je ne l'ai pas sous les yeux ...

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    salut les membres,
    bon une partie du problème a été resolue ( merci MAINBLIZO), mais j'arrive pas toujours à recuperer des instances de "getHibernateTemplate()" et "getSessionFactory()".
    mon classe qui etend "HibernateDaoSupport" est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    .....
     
     public void saveClient(Client c) {
            try{
                ClassPathResource res = new ClassPathResource("config.xml");
                XmlBeanFactory factory = new XmlBeanFactory(res);
                sessionFactory=(SessionFactory) factory.getBean     ("sessionFactoryBean");       
                //sessionFactory= getSessionFactory();                  
                getHibernateTemplate().save(c);   
     
             }catch (Exception ex){
                    log.fatal("***saveException"); 
                     ex.printStackTrace(); 
             }
    }
     
     public void deleteEmployee(Integer pEmployeeId) {
                        List l=getHibernateTemplate().find(
                        "from AMB_ClIENT e where e.ID_CLIENT='"+pEmployeeId+"'");
                        if(l.size()>0){
                                Client ret=(Client)l.get(0);
                                getHibernateTemplate().delete(ret);
                        }
     }
        public List getUsers(){
                        return getHibernateTemplate().findByNamedQuery("AllUsers");
        }
     
     
        /**
       *
       * @param args
       */
        public static void main(String[] args) {
           // Log log = new Log(ClientData.class);
     
        try{
     
     
           ClientData cd = new ClientData();
           Client c=  new Client();
           c.setIdClient(10000);
           c.setLogin("springo");
           c.setPwd("springo");
           cd.saveClient(c);
           //cd.deleteEmployee(12);
           //List l= cd.getUsers();
    Au moment de l'execution l'application crache au niveau de l'appel de "getHibernateTemplate() avec l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    "C:\Program Files\Java\jdk1.5.0_08\bin\javaw.exe" -client -classpath C:\work\Spring\ViewController\classes;C:\work\Spring\ViewController\lib\antlr-2.7.6rc1.jar;C:\work\Spring\ViewController\lib\asm-2.2.2.jar;C:\work\Spring\ViewController\lib\asm-attrs.jar;C:\work\Spring\ViewController\lib\asm-commons-2.2.2.jar;C:\work\Spring\ViewController\lib\asm-util-2.2.2.jar;C:\work\Spring\ViewController\lib\aspectjrt-1.2.jar;C:\work\Spring\ViewController\lib\cglib-nodep-2.1_3.jar;C:\work\Spring\ViewController\lib\commons-beanutils.jar;C:\work\Spring\ViewController\lib\commons-collections.jar;C:\work\Spring\ViewController\lib\commons-dbcp.jar;C:\work\Spring\ViewController\lib\commons-digester.jar;C:\work\Spring\ViewController\lib\commons-lang.jar;C:\work\Spring\ViewController\lib\commons-logging.jar;C:\work\Spring\ViewController\lib\concurrent.jar;C:\work\Spring\ViewController\lib\commons-pool.jar;C:\work\Spring\ViewController\lib\displaytag-1.1.jar;C:\work\Spring\ViewController\lib\dom4j-1.6.jar;C:\work\Spring\ViewController\lib\itext-0.99.jar;C:\work\Spring\ViewController\lib\j2ee.jar;C:\work\Spring\ViewController\lib\jaxen-1.1-beta-4.jar;C:\work\Spring\ViewController\lib\jms.jar;C:\work\Spring\ViewController\lib\jsr173_1.0_api.jar;C:\work\Spring\ViewController\lib\junit-4.1.jar;C:\work\Spring\ViewController\lib\jta.jar;C:\work\Spring\ViewController\lib\lm.jar;C:\work\Spring\ViewController\lib\log4j-1.2.9.jar;C:\work\Spring\ViewController\lib\log4j.jar;C:\work\Spring\ViewController\lib\menu.jar;C:\work\Spring\ViewController\lib\ojdbc14.jar;C:\work\Spring\ViewController\lib\quartz-1.5.2.jar;C:\work\Spring\ViewController\lib\spring-dao.jar;C:\work\Spring\ViewController\lib\spring-hibernate.jar;C:\work\Spring\ViewController\lib\spring.jar;C:\work\Spring\ViewController\lib\acegi-security-1.0.0-RC2.jar;C:\work\Spring\ViewController\lib\hibernate3.2.1.jar -Dhttp.proxyHost=NEWQUIRINUS -Dhttp.proxyPort=8080 -Dhttp.nonProxyHosts=localhost|127.0.0.1 -Dhttps.proxyHost=NEWQUIRINUS -Dhttps.proxyPort=8080 -Dhttps.nonProxyHosts=localhost|127.0.0.1 oxia.integration.ClientData
    17:44:46,142  INFO CollectionFactory:76 - JDK 1.4+ collections available
    17:44:46,157  INFO CollectionFactory:80 - Commons Collections 3.x available
    17:44:46,204  INFO XmlBeanDefinitionReader:347 - Loading XML bean definitions from class path resource [applicationContext.xml]
    17:44:46,501  INFO DriverManagerDataSource:155 - Loaded JDBC driver: oracle.jdbc.OracleDriver
    17:44:47,095  INFO LocalSessionFactoryBean:701 - Building new Hibernate SessionFactory
    17:44:50,907 FATAL ClientData:39 - ***saveException
    java.lang.NullPointerException
    	at xxx.integration.ClientData.saveClient(ClientData.java:254)
    	at xxx.integration.ClientData.main(ClientData.java:291)
    Process exited with exit code 0.
    merci pour votre aide

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 118
    Points : 137
    Points
    137
    Par défaut
    Essaie aussi de définir les propriétés current_session_context_class, transaction.factory_class et transaction.manager_lookup_class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <property name="hibernateProperties">
    	<props>
                    <prop key="hibernate.current_session_context_class">
                    	jta
                    </prop>
                    <prop key="hibernate.transaction.factory_class">
                    	org.hibernate.transaction.JTATransactionFactory
                    </prop>
                    <prop
                    	key="hibernate.transaction.manager_lookup_class">
                    	org.hibernate.transaction.JBossTransactionManagerLookup
                    </prop>
                    <prop key="hibernate.dialect">
                    	org.hibernate.dialect.Oracle9Dialect
                    </prop>
                    <prop key="hibernate.show_sql">false</prop>
                    <prop key="hibernate.use_outer_join">true</prop>
    	</props>
    </property>

Discussions similaires

  1. Utiliser JRebel avec Spring
    Par sovo dans le forum Spring
    Réponses: 1
    Dernier message: 21/01/2015, 09h09
  2. Utiliser Hibernate avec JSP
    Par ferhat.adel dans le forum Hibernate
    Réponses: 2
    Dernier message: 04/01/2013, 09h38
  3. Peut on utiliser Hibernate avec une BDD de type Myisam?
    Par Annsen dans le forum Hibernate
    Réponses: 19
    Dernier message: 04/05/2011, 22h58
  4. Réponses: 1
    Dernier message: 15/10/2007, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo