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

Struts 1 Java Discussion :

une exception java.lang.NullPointerException


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 125
    Par défaut une exception java.lang.NullPointerException
    bonjour,

    Je suis débutante en développemnt j2ee,
    j'ai un problème et je souhaite trouver une réponse chez vous .

    jai un ensemble de pages web et lorsque je lance une requete pour demander ma page l'exception suivante se lève:
    java.lang.NullPointerException

    la classe Dao 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
     
     
     
    public  class HibernateCommDataDao extends HibernateDaoSupport implements CommDataDao{
     
    	final Log log = LogFactory.getLog( HibernateCommDataDao.class);
     
    	public void saveCommData(CommData commData) {
    		// Recuperation implicite d'HibernateTemplate
    		getHibernateTemplate().saveOrUpdate(commData);		
    	}
     
     
     
    	public List<CommData> getAllCommData() {
     
     
    		try{
    			System.out.println("je vais vous construire votre liste listCommData");
     
    			List listCommData=getHibernateTemplate().find("select id from CommData ");
     
    			return listCommData;
    		}catch (RuntimeException re) {
    	         log.error("Echec d'afficher les commissions ", re);
    	         throw re;
    		}	
    }
     
    }
    ma jsp s'appelle consultCommNorm.jsp et sa classe action 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
     
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    import antlr.collections.List;
     
    import com.tunisiana.storcash.dao.HibernateCommDataDao;
     
    import com.tunisiana.storcash.formes.ConsultCommNormForm;
     
    public class ConsultCommNormAction extends Action {
     
    	private ConsultCommNormForm form;
    	ConsultCommNormForm consultCommNormCorporate= form ;
     
    	HibernateCommDataDao hibernateCommDataDao =new HibernateCommDataDao();
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form, 
        		HttpServletRequest request, HttpServletResponse response)
    	{
    		System.out.println("construction de la liste des commissions normaux");
     
    		List commNormList=(List) hibernateCommDataDao.getAllCommData();
    		request.getSession().setAttribute("commNormList", commNormList);
    		return (mapping.findForward("succes"));
     
    }
     
    }

    Sachant que j'utilise Hibernate , spring et struts1, linjection de mon bean dans le fichier context-Application.xml se fait de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <bean id="hibernateTemplate"
    		class="org.springframework.orm.hibernate3.HibernateTemplate">
    		<property name="sessionFactory" ref="sessionFactory" />
    	</bean>
     
            <bean id="hibernateCommDataDao"
    		class="com.storcash.dao.HibernateCommDataDao">
    		<property name="hibernateTemplate" ref="hibernateTemplate" />
    	</bean>

    s'il vous palit aidez moi .

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu as quelque chose dans la console, un stack trace par exemple ?
    Si oui, peux-tu montrer les messages ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 125
    Par défaut
    J'ai compris ma faute , jaurais du passer une la couche service , ce que jai oublié de le faire et non pas directement la couche DAO.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 125
    Par défaut
    Malheuresement le problème persiste encore.

    L'injection du bean dans le fichier ApplicationContext , je l'ai fait comme suit:

    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
    <bean id="consultCommNormService"
    		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    		<property name="proxyTargetClass" value="true" />
    		<property name="transactionManager" ref="hibernateTransactionManager" />
    		<property name="target">
    		    <bean
    				class="com.storcash.services.ConsultCommNormService">
    				<property name="hibernateCommDataDao">
    					<ref bean="hibernateCommDataDao" />
    				</property>
    			</bean>
    		</property>
     
    		<property name="transactionAttributes">
    			<props>
    				<prop key="*">PROPAGATION_REQUIRED</prop>
    			</props>
    		</property>
    	</bean>

    ma classe de la couche service est :

    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
    public class ConsultCommNormService implements IconsultCommNormService {
     
    	private CommDataDao commDataDao;
    	public List<CommData> getAllCommData() {
    		List<CommData>	commDataList=commDataDao.getAllCommData();
    		return commDataList;
    	}
     
     
    	public CommData getCommDataByCode(String code) {
    	CommData commData=commDataDao.getCommDataByCode(code);
    		return commData;
    	}
     
     
     
    	public void saveCommData(CommData comData) {
    		commDataDao.saveCommData(comData);
     
     
    	}
     
     
     
    	public CommData getCommDataById(int id) {
    		CommData commData=commDataDao.getCommDataById(id);
    		return commData;
    	}
     
     
    	public CommDataDao getCommDataDao() {
    		return commDataDao;
    	}
     
     
    	public void setCommDataDao(CommDataDao commDataDao) {
    		this.commDataDao = commDataDao;
    	}
     
     
     
    }

    ma classe DAO:

    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
    public  class HibernateCommDataDao extends HibernateDaoSupport implements CommDataDao{
     
    	final Log log = LogFactory.getLog( HibernateCommDataDao.class);
     
    	public void saveCommData(CommData commData) {
    		// Recuperation implicite d'HibernateTemplate
    		getHibernateTemplate().saveOrUpdate(commData);		
    	}
     
    	public CommData findCommdata(long id) {
    		return (CommData)getHibernateTemplate().load(CommData.class,new Long(id));
     
    	}
     
    	public List<CommData> getAllCommData() {
     
    		System.out.println("je suis avant le bloc try catch");
    		try{
    			System.out.println("je vais vous construire votre liste listCommData");
     
    			List listCommData=getHibernateTemplate().find("select id from CommData ");
     
    			return listCommData;
    		}catch (RuntimeException re) {
    			log.error("Exception lors de la création de la liste", re);
    			throw re;
     
     
    		}	
    }
    la classe Action:
    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
     
    public class ConsultCommNormAction extends Action {
     
     
     
     
    	private CommDataDao commDataDao;
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form, 
        		HttpServletRequest request, HttpServletResponse response)
    	{
     
     
    		System.out.println("construction de la liste des commissions normaux");
     
    		List commNormList=(List) commDataDao.getAllCommData();
    		request.getSession().setAttribute("commNormList", commNormList);
    		return (mapping.findForward("succes"));
     
    }
     
    	public CommDataDao getCommDataDao() {
    		return commDataDao;
    	}
     
    	public void setCommDataDao(CommDataDao commDataDao) {
    		this.commDataDao = commDataDao;
    	}
     
     
     
    }

    La trace sur la console est la suivante:
    08:44:09,912 DEBUG ConnectionManager:369 - running Session.finalize()
    08:44:09,912 DEBUG ConnectionManager:369 - running Session.finalize()
    08:44:10,568 DEBUG ConnectionManager:369 - running Session.finalize()
    construction de la liste des commissions normaux
    08:44:12,550 WARN RequestProcessor:516 - Unhandled Exception thrown: class java.lang.NullPointerException
    22 juil. 2010 08:44:12 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet action a généré une exception
    java.lang.NullPointerException
    at com.tunisiana.storcash.actions.ConsultCommNormAction.execute(ConsultCommNormAction.java:34)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)


    d'après la trace de la console j'ai constaté que l'exception est levée lors de l'exécution de la l'instruction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List commNormList=(List) commDataDao.getAllCommData();
    Je ne sais pas comment régler ce problème, si vous avez un réponse s'il vous plait aidez moi et merci d'avance

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    commDataDao est null. Je ne vois pas dans ton code ou dans tes fichiers de config où tu attribue une valeur à cette propriété, ce qui explique qu'elle est null.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 125
    Par défaut
    Merci pour votre réponse

    J'ai changé le fichier ApplicationContext de lafaçon 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
    <bean id="consultCommNormService"
    		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    		<property name="proxyTargetClass" value="true" />
    		<property name="transactionManager" ref="hibernateTransactionManager" />
    		<property name="target">
    		    <bean
    				class="com.storcash.services.ConsultCommNormService">
    				<property name="commDataDao">
    					<ref bean="hibernateCommDataDao" />
    				</property>
    			</bean>
    		</property>
    
    		<property name="transactionAttributes">
    			<props>
    				<prop key="*">PROPAGATION_REQUIRED</prop>
    			</props>
    		</property>
    	</bean>
    mais le problème est le même

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

Discussions similaires

  1. Bloqué sur une erreur java.lang.NullPointerException
    Par youness78 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 03/11/2009, 15h49
  2. [Exception] java .lang.NullPointerException
    Par Deallyra dans le forum Général Java
    Réponses: 8
    Dernier message: 22/05/2008, 16h25
  3. J'ai une erreur: "java.lang.NullPointerException"
    Par erkan37 dans le forum Général Java
    Réponses: 12
    Dernier message: 14/04/2008, 14h15
  4. Exception : java.lang.NullPointerException
    Par parano dans le forum Langage
    Réponses: 4
    Dernier message: 05/07/2007, 20h27
  5. Erreur exception java.lang.NullPointerException
    Par geol99 dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2007, 20h24

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