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 :

Spring + hibernate + struts [Data]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut Spring + hibernate + struts
    Voilà j'ai un probleme à peu près similaire a celui qui viens d'etre posté mais ce n'est pas le meme, donc je me permet de le poster.

    A chaque appel de getHibernateTemplate ca me retourne null, pourquoi? Je coince et je ne trouve aucune explication et donc résolution.

    Mon fichier applicationContext.xml (dans WEB-INF):

    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
    <beans>
    	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    		<property name="driverClassName">
    			<value>oracle.jdbc.driver.OracleDriver</value>
    		</property>
    		<property name="url">
    			<value>jdbc:oracle:thin:@localhost:1521:XE</value>
    		</property>
    		<property name="username">
    			<value>user</value>
    		</property>
    		<property name="password">
    			<value>pass</value>
    		</property>
    	</bean>
     
    	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.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>
    			</props>
    		</property>
    		<property name="mappingResources">
    			<list>
    				<value>package/User.hbm.xml</value>
    			</list>
    		</property>
    	</bean>
     
    	<bean id="basicDataDao" class="package.BasicDataDaoImpl">
    		<property name="sessionFactory">
    			<ref bean="sessionFactory" />
    		</property>
    	</bean>
     
     
    </beans>

    J'utilise Struts donc j'ai mis ca dans le web.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	<!-- Ou utilisation de la servlet ContextLoaderServlet-->
    	<servlet>
    		<servlet-name>context</servlet-name>
    		<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    Et enfin voici ma classe qui extends HibernateDAOSupport:

    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
    public class BasicDataDaoImpl extends HibernateDaoSupport {
    
    	
    	public BasicDataDaoImpl() {
    		super();
    	}
    
    	public List getValues(Class c){
    		try{
    			return getHibernateTemplate().loadAll(c);
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		return new ArrayList();
    		
    	}
    }

    Voilà et c'est donc getHibernateTemplate qui me retourne donc null et donc un nullpointer, donc faut que vous m'aidiez à trouver pourquoi ce null pointer.
    Car il y a surement un truc que j'ai pas du comprendre ou pas entierement car j'ai beau faire des tuto je ne trouve rien qui m'aiguille pour résoudre cette erreur.

    Merci

  2. #2
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    C'est bon pas la peine de vous prendre la tete j'ai fait le boulet, je faisais moi meme l'instanciation de la classe basicDataDao en croyant au pere noel que la sessionFactory aller lui etre passer, je revais tout eveiller (enfin c'est surement faisable avec des interceptions mais bon....)

    J'ai reussi a faire marcher mon exemple c'est ce que je souhaitais.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut Moi aussi je suis un boulet mais plus...
    J'ai, moi aussi, exactement le même problème et j'aimerais savoir comment tu as fais pour le resoudre.
    Merci d'avance

  4. #4
    Membre éclairé Avatar de dgouyette
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    Je pense qu'il avait soit sa session factory qui n'était pas injectée, soit son template hibernate.

    Utilisation d'une propriété non injectée = nullpointerexception

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 175
    Par défaut
    Est-il possible d'avoir la solution explicite stp ?

    J'ai exactement le même problème.

  6. #6
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    Il a fait un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    BasicDataDaoImpl x=new BasicDataDaoImpl();
    //ensuite il utilise x
    Crée de cette façon là, le DAO n'a pas passé par le moteur IoC de Spring, donc rien ne lui a été injecté, notamment la sessionFactory d'où son problème.

    Il faut plutôt récupérer le singleton crée par Spring, en faisant par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ApplicationContext ac = new .....;
    BasicDataDaoImpl x = (BasicDataDaoImpl)ac.getBean("basicDataDao");
    Voilou.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Data] Gestion des exceptions dans applications Spring Hibernate Struts
    Par coco-sup dans le forum Spring
    Réponses: 4
    Dernier message: 09/12/2012, 12h58
  2. Squelette pour Spring+Hibernate+Struts
    Par inflation dans le forum Maven
    Réponses: 1
    Dernier message: 08/02/2011, 10h52
  3. Réponses: 2
    Dernier message: 16/02/2006, 09h04
  4. Réponses: 5
    Dernier message: 25/05/2005, 21h16

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