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 :

Problème useBean JSP / SERVLET


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut Problème useBean JSP / SERVLET
    Bonjour à tous,

    J'ai un problème avec mon jsp et j'ai cherché pendant presque une journée entière sur tous les forums sans trouver la solution à mon problème.

    Voici mon problème:

    J'essaie dans un jsp de récupérer un bean placé dans mon répertoire tomcat.
    Le bean a été instancié dans la servlet et placé dasn la session.

    Voici l'arborescence de mes fichiers sous tomcat:

    |-- ROOT
    --|-- jsp
    --| |-- contexte.jsp
    --| |-- authentifie.jsp
    --| |-- accueil.jsp
    --|-- WEB-INF
    ----|-- classes
    ------|-- Servletcontrole.class
    ------|-- BeanSql.class
    ------|-- bean
    --------|-- BeanClient.class

    J'utilise le modèle MVC.
    Mon jsp contexte contient une applet qui contacte la ServletControle en lui passant des paramètres de login.
    La servlet instancie un bean BeanClient avec username et password du client.
    Ensuite la servlet mémorise le bean dans la session.
    La servlet demande à l'applet de rediriger la page vers authentifie qui est en fait une page qui ne fait qu'informer la client qu'il est bien authentifié avec un bouton pour qu'il se redirige vers l'accueil.

    Lorsque à partir du bouton je contacte la servlet pour qu'elle me dirige vers l'accueil, tomcat me lance l'exception suivante :

    org.apache.jasper.JasperException: /jsp/accueil.jsp(6,0)
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1200)
    org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1155)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2388)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2394)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3374)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:210)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


    Voici le code de mon jsp accueil:

    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
    <%@page contentType="text/html"%>
    <%@page import="bean.*"%>
    <jsp:useBean id="client" scope="session" class="bean.BeanClient" />
     
     
    <html>
    <head>
      <title>Intra airports</title>
      <link rel="stylesheet" href="style.css">
    </head>
     
    <body>
     
    <!-- Menu de navigation du site -->
    <ul class="navbar">
      <li><a href="index.html">Home page</a>
      <li><a href="reflexions.html">Réflexions</a>
      <li><a href="ville.html">Ma ville</a>
      <li><a href="liens.html">Liens</a>
    </ul>
     
    <!-- Contenu principal -->
    <h1>Intranet de l'aéroport - Intra Airports</h1>
     
    <p>Bienvenue sur l'intranet de l'aéroport! 
     
    <p>Vous allez pouvoir effectuer des recherches selon différents critères, bonnes fouilles ...
    &hellip;
     
    <p>Pour pouvoir accéder au site, vous devez être enregistré par un admin.
     
    <!-- Signer et dater la page, c'est une question de politesse! -->
    <address>Complément programmation réseau<br>
             Dossier 3 - janvier 2008</address>
     
    </body>
    </html>
    J'avoue être complètement largué

  2. #2
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 39
    Par défaut
    tu peux essayer par implementer le bean "Client" comme serialisable et declarer un attribut dans "serialVersionUID " au niveau de la classe Client . Cet attribut peut prendre une valeur genérée par defaut :

    private static final long serialVersionUID = xxxxxxxxxxL;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut
    Ma classe BeanClient est déjà sérialisable:

    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
    package bean;
     
     
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    import java.beans.*;
    /**
     *
     * @author Administrateur
     */
    public class BeanClient extends Object implements java.io.Serializable
    {
        private String username = null;
        private String password = null;
        private String langue   = null;
        private String email    = null;
     
        public BeanClient(String username, String password, String langue)
        {
            this.username = username;
            this.password = password;
            this.langue   = langue;
        }
     
        public BeanClient(String username, String password, String langue, String email)
        {
            this(username,password,langue);
            this.email = email;
        }
     
        public String getUsername(){return username;}
        public String getPassword(){return password;}
        public String getLangue()  {return langue;}
        public String getEmail()   {return email;}
     
        public void setUsername(String username){this.username = username;}
        public void setPassword(String password){this.password = password;}
        public void setLangue(String langue)    {this.langue=langue;}
        public void setEmail(String email)      {this.email=email;}
    }
    Qu'est ce que le serialVersionUID va changer ?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Bonjour tofke,

    Il faut que ton BeanClient possède un constructeur vide pour pouvoir être instancier dynamiquement (introspection).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    Par défaut
    Bonjour Duc,

    Je suis d'accord avec toi dans le cas où c'est mon jsp qui veut instancier le bean... mais dans ce cas ci c'est ma servlet qui instancie le bean et la jsp qui essaie de le récupérer dans le scope session... dois-je tout de même mettre un constructeur par défaut dans ce cas ?

  6. #6
    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
    Essaye cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <jsp:useBean type="bean.BeanClient" id="client" scope="session"/>
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Rien que pour une question de normalisation, un bean doit toujours posséder un constructeur par défaut.

    Il faut voir comment tu invoques ton site depuis l'applet, es-tu bien sûr que tu manipules la même session ? Tu récupère le cookie (ou le sessionid) et tu le réinjecte dans tes requêtes ?

    Vérifie que l'instruction suivante ne retourne pas null :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%System.out.println(session.getAttribute("client"));%>

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

Discussions similaires

  1. Problème JSP / Servlet + JfreeChart
    Par Hellnino18 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 23/06/2009, 15h01
  2. Problème d'encodage JSP/Servlet/MySQL
    Par AlexLEDE dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 28/05/2009, 15h13
  3. Problème avec <jsp:useBean>
    Par SyLvErStOrM dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 02/09/2008, 17h18
  4. problème avec <jsp:usebean />
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 03/08/2006, 15h04
  5. [JSP/Servlet] Problème de déploiement sous JBoss
    Par mittim dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 11/07/2006, 14h57

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