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

Servlets/JSP Java Discussion :

NullPointerException dans une servlet utilisant un bean


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Par défaut NullPointerException dans une servlet utilisant un bean
    Bonjour !
    Je developpe une petite boutique en ligne (dans le cadre d'un exercice) en J2EE et ai un petit soucis et j'ai donc besoin de quelques explications.
    Le problème se situe dans une gestion de panier de la boutique

    Voici le code de la servlet
    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
     
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//recup l'id du produit selectionner
    		HttpSession session = request.getSession(true);
    		String id = request.getParameter("id");
    		int id_prod = Integer.parseInt(id); 
     
    		ProduitsBean m_prod = new ProduitsBean();
    		//recup du panier
    		ProduitsListBean m_panier = (ProduitsListBean)session.getAttribute("panier");
    		try{
    			//recup du produit associé à l'id
    			InitialContext jndi = new InitialContext();
    			AccesCatalogueBeanRemote remote = (AccesCatalogueBeanRemote)jndi.lookup("AccesCatalogueJNDI/remote");
    			m_prod = remote.getProduit(id_prod);
    		}
    		catch (Exception e) {
    			e.printStackTrace();
    		}
    		//ajout du produit au panier
    		System.out.println(m_prod.getName()); //cette instruction fonctionne donc m_prod existe bien !
    		m_panier.add_prod(m_prod); //la null pointer exception intervient ici
    		session.setAttribute("panier", m_panier);
    		response.sendRedirect("panier.jsp");
    	}
    voici le code du bean ProduitListBean
    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
     
    public class ProduitsListBean implements Serializable {
    	private ArrayList<ProduitsBean> list_prod;
     
    	public ProduitsListBean(){
     
    	}
     
    	public ArrayList<ProduitsBean> getList_prod() {
    		return list_prod;
    	}
     
    	public void setList_prod(ArrayList<ProduitsBean> list_prod) {
    		this.list_prod = list_prod;
    	}
     
    	public boolean add_prod(ProduitsBean prod){
    		System.out.println("ajout d'un produit");//cela s'affiche
    		System.out.println(prod.getId()+"");//Null Pointer Exception ici !
    		return list_prod.add(prod);
    	}
    }
    Il y a donc un problème lorsque je veux ajouter mon produit au panier avec la servlet.
    Je pense que ca vient du passage de l'objet en paramètre mais ne comprends pas pourquoi cela ne fonctionne pas.

    Si quelqu'un peut me fournir une explication je l'en remercie

  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
    La première fois que tu appelles la servlet, l'objet ProduitsListBean n'existe pas en session.
    Il faut donc faire un test préalable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ProduitsListBean m_panier = (ProduitsListBean)session.getAttribute("panier");
    if (m_panier == null)
    {
       m_panier = new ProduitsListBean();
       session.setAttribute("panier", m_panier);
    }
    (tu peux retirer le session.setAttribute("panier", m_panier) à la fin de ton code, tu n'as besoin de le positionner en session qu'une seule fois)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Par défaut
    Merci !
    J'avais oublié ca et il fallait aussi initialisé à un moment ou un autre (de la meme manière) list_prod dans le bean.
    Je vais pouvoir avancer ! Encore merci !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/02/2013, 17h44
  2. Récupération de données dans un fichier XML pour une utilisation dans une servlet
    Par Dredd619 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 24/04/2009, 08h41
  3. Réponses: 3
    Dernier message: 24/04/2009, 08h39
  4. problème d'injection (?) d'un session bean EJB3 dans une servlet
    Par toomsounet dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 11/03/2007, 01h26
  5. [Débutant] Utilisation d'une classe dans une servlet
    Par stokoma1981 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 28/09/2006, 15h11

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