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 :

Message : "The value for the useBean class attribute is invalid."


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut Message : "The value for the useBean class attribute is invalid."
    Bonjour tout le monde,

    Mon problème est le suivant :
    J'appelle un bean depuis ma jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <jsp:useBean class="util.Starter" id="db" scope="session"></jsp:useBean>
    Ma classe Starter ressemble à ça :
    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
     
    package util;
     
    import com.mysql.jdbc.Connection;
     
    /**
     * Servlet implementation class for Servlet: Starter
     *
     */
     public class Starter {
     
    	 private MysqlDb db = null;
    	 public Connection con = null;
     
     
    	public Starter() {
    		super();
    		setDb(MysqlDb.getInstance());
    		setCon(getDb().getConnection());
    	}   	
     
    	public MysqlDb getDb()
    	{
    		return db;
    	}
     
    	public Connection getCon()
    	{
    		return con;
    	}
     
    	public void setDb(MysqlDb db)
    	{
    		this.db = db;
    	}
     
    	public void setCon(Connection con)
    	{
    		this.con = con;
    	}
    }
    Je respecte la syntaxe getter/setter,
    Ma classe Starter compilée se trouve dans WEB-INF/classes/util,
    J'ai un constructeur sans paramètre dans ma classe Starter,

    Mon fichier web.xml ressemble à ça :
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    	<display-name>
    	WebInterface</display-name>
    	<servlet>
    		<description>
    		</description>
    		<display-name>
    		SessionLogger</display-name>
    		<servlet-name>SessionLogger</servlet-name>
    		<servlet-class>
    		util.SessionLogger</servlet-class>
    	</servlet>
    	<servlet>
    		<description>
    		</description>
    		<display-name>
    		Starter</display-name>
    		<servlet-name>Starter</servlet-name>
    		<servlet-class>
    		util.Starter</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>SessionLogger</servlet-name>
    		<url-pattern>/SessionLogger</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>Starter</servlet-name>
    		<url-pattern>/Starter</url-pattern>
    	</servlet-mapping>
    	<welcome-file-list>
    		<welcome-file>index.html</welcome-file>
    		<welcome-file>index.htm</welcome-file>
    		<welcome-file>index.jsp</welcome-file>
    		<welcome-file>default.html</welcome-file>
    		<welcome-file>default.htm</welcome-file>
    		<welcome-file>default.jsp</welcome-file>
    	</welcome-file-list>
    </web-app>
    Tout cela fonctionne parfaitement sous Eclipse en environnement local, en revanche j'obtient l'erreur suivante sur mon serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.apache.jasper.JasperException: /VisioServer/login.jsp(8,0) The value for the useBean class attribute util.Starter is invalid.
    Dans tous les cas (environnement local et serveur) je tourne avec Tomcat 5.5.

    Sur le forum de Sun, j'ai pu lire que certains utilisent le mot clé "type" à la place de "class" comme attribut de la balise usebean. Cette solution ne me convient pas car elle sous entends que la classe du bean a déjà été instanciée.

    Je sais que c'est un problème récurrent qui a déjà été posté plusieurs fois, mais aucunes des solutions proposées ne semble résoudre mon problème...

    Any idea ???

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Tu as défini "The value for the useBean class attribute" avec db

    Tu as défini private MysqlDb db = null;

    Il y a peut être conflit entre les deux ???

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Bonjour Fench,

    Merci pour ta rapidité,

    Je ne pense pas que ce soit lié... d'autant plus que ça ne marcherait pas dans l'environnement local si c'était le cas.
    J'essaye quand même et je te tient au courant!

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Je confirme, ça ne change rien. Le problème reste le même !

  5. #5
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    id="db" n'a rien à voir avec la propriété db de la classe...

    Il se pourrait que ton erreur soit liée à une erreur dans le constructeur.
    Peux-tu essayer comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public Starter() {
        super();
        try
        {
            setDb(MysqlDb.getInstance());
            setCon(getDb().getConnection());
        }
        catch (Exception e)
        {
            System.out.println(e.getMessage());
        }
    }
    A+

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Oui sûrement que si ça marche en local, ce n'est pas le pb ...

    En restant sur le même principe, je sais encore que si ça marche en local ya pas de raison mais c t'on jamais
    Sur tes getteur, setteur, tu utilises le this. pour les set et pourquoi pas dans les get

    Et puis une question, elle est comment ta servlet SessionLogger ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Bonjour OButterlin,

    Très bonne idée !!
    J'ai essayé ton constructeur mais l'exception levée est toujours la même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.apache.jasper.JasperException: /VisioServer/login.jsp(8,0) The value for the useBean class attribute util.Starter is invalid.
    Fench,

    Je précise "this" parce que le paramètre de mon setter porte le même nom, mais ça marcherait sans c'est juste pour le principe.

    Voici ma classe SessionLogger (je suis pas sur que ça te serve...):
    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
    package util;
     
    import java.util.Date;
     
    /**
     * Bean d'enregistrement des informations relatives à la sesion utilisateur.
     */
     
     public class SessionLogger {
     
    	 public static final int NO_USER = 0;
    	 public static final int CARDIO_USER = 1;
    	 public static final int PHARMA_USER = 2;
     
     
    	 private boolean isLogged = false;
    	 private Date logDate = null;
    	 private int userType = NO_USER;
    	 private int userId = 0;
     
    	 public boolean isLogged() {
    		 return isLogged;
    	 }
    	 public void setLogged(boolean isLogged) {
    		 this.isLogged = isLogged;
    	 }
    	 public Date getLogDate() {
    		 return logDate;
    	 }
    	 public void setLogDate(Date logDate) {
    		 this.logDate = logDate;
    	 }
    	 public int getUserType() {
    		 return userType;
    	 }
    	 public void setUserType(int userType) {
    		 this.userType = userType;
    	 }
    	public int getUserId() {
    		return userId;
    	}
    	public void setUserId(int userId) {
    		this.userId = userId;
    	}
    }

  8. #8
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu n'aurais pas un objet en session enregistré sous "db" d'un autre type (classe) ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Non d'autant plus que ce bean est le premier à être appelé en début de session, je n'ai donc aucun objet db déjà instancié dans ma session.
    De plus j'ai essayé avec un 'id' différent que 'db' et le problème persiste...

  10. #10
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Tu dis que la classe Starter compilée se trouve dans WEB-INF/classes/util.
    As-tu vérifié qu'elle y est bien aussi dans le war que tu déploies sur le serveur ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Je copie les fichiers à la main, je n'ai pas de war, je suis donc sur de la présence de mes .class

    Je viens d'essayer tout de même en générant le .war depuis Eclipse (des fois que) et en le déployant avec le manager de Tomcat, le résultat est le même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.apache.jasper.JasperException: /VisioServer/login.jsp(8,0)

  12. #12
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    As-tu le même message d'erreur avec le constructeur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Starter()
    {
      this.db=null ;
      this.con=null ;
    }

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Malheureusement oui...

  14. #14
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    J'ai regardé un peu sur le net avec ce message d'erreur et il en vient qu'elle est fréquente et provient de deux choses (sur tout ce que j'ai lu):

    soit un pb de chemin dans le WEB-INF/classes/packageEx/laclass.class ...

    soit un pb de constructeur ...

    Le pb est que ton appli marche en local !!!!

    Et donc c

    peut être du côté du login.jsp

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    C'est justement pour ça que j'en viens à vous solliciter...

    Par contre je tiens à préciser qu'elle marche en local au sein d'Eclipse.
    Mais pas lorsque je copie les fichiers (ou déploie mon war) dans le dossier de mon tomcat local ou distant.

  16. #16
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Et puis ya un truc que je voudrais bien comprendre, tes classes Starter et SessionLogger sont pas des servlets ???


    Oulllaaaaa j'suis fatigué moi, je comprends plus rien, j'vais faire une pause

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Non ce sont des classes ordinaires, appelées en tant que bean.

  18. #18
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu as peut-être "oublié" d'inclure je jar du driver JDBC dans ton application...
    (il devrait être dans /WEB-INF/lib)

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    il y 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
     
    /var/lib/tomcat5.5/webapps/WebInterface
    /var/lib/tomcat5.5/webapps/WebInterface/background.jpg
    /var/lib/tomcat5.5/webapps/WebInterface/dossierBckgnd.jpg
    /var/lib/tomcat5.5/webapps/WebInterface/dossierMedical.jsp
    /var/lib/tomcat5.5/webapps/WebInterface/emptyBackground.jpg
    /var/lib/tomcat5.5/webapps/WebInterface/index.html
    /var/lib/tomcat5.5/webapps/WebInterface/insertCardio.jsp
    /var/lib/tomcat5.5/webapps/WebInterface/insertPatient.jsp
    /var/lib/tomcat5.5/webapps/WebInterface/insertPharma.jsp
    /var/lib/tomcat5.5/webapps/WebInterface/listeCardios.jsp
    /var/lib/tomcat5.5/webapps/WebInterface/Liste des cardios.html
    /var/lib/tomcat5.5/webapps/WebInterface/Liste des patients.html
    /var/lib/tomcat5.5/webapps/WebInterface/listeEcgs.jsp
    /var/lib/tomcat5.5/webapps/WebInterface/listePatients.jsp
    /var/lib/tomcat5.5/webapps/WebInterface/login.jsp
    /var/lib/tomcat5.5/webapps/WebInterface/META-INF
    /var/lib/tomcat5.5/webapps/WebInterface/META-INF/MANIFEST.MF
    /var/lib/tomcat5.5/webapps/WebInterface/pdf.jpg
    /var/lib/tomcat5.5/webapps/WebInterface/Saisie cardiologue.html
    /var/lib/tomcat5.5/webapps/WebInterface/Saisie patient.html
    /var/lib/tomcat5.5/webapps/WebInterface/Saisie pharmacie.html
    /var/lib/tomcat5.5/webapps/WebInterface/style.css
    /var/lib/tomcat5.5/webapps/WebInterface/updateCardio.jsp
    /var/lib/tomcat5.5/webapps/WebInterface/updateDossier.jsp
    /var/lib/tomcat5.5/webapps/WebInterface/updatePatient.jsp
    /var/lib/tomcat5.5/webapps/WebInterface.war
    /var/lib/tomcat5.5/webapps/WebInterface/WEB-INF
    /var/lib/tomcat5.5/webapps/WebInterface/WEB-INF/classes
    /var/lib/tomcat5.5/webapps/WebInterface/WEB-INF/classes/com
    /var/lib/tomcat5.5/webapps/WebInterface/WEB-INF/classes/util
    /var/lib/tomcat5.5/webapps/WebInterface/WEB-INF/classes/util/MysqlDb.class
    /var/lib/tomcat5.5/webapps/WebInterface/WEB-INF/classes/util/SessionLogger.class
    /var/lib/tomcat5.5/webapps/WebInterface/WEB-INF/classes/util/Starter.class
    /var/lib/tomcat5.5/webapps/WebInterface/WEB-INF/lib
    /var/lib/tomcat5.5/webapps/WebInterface/WEB-INF/lib/mysql-connector-java-5.1.7-bin.jar
    /var/lib/tomcat5.5/webapps/WebInterface/WEB-INF/web.xml

  20. #20
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Peux-tu joindre le war, vu la taille, ça devrait aller...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/06/2015, 11h32
  2. Réponses: 2
    Dernier message: 26/05/2015, 20h30
  3. Réponses: 0
    Dernier message: 23/03/2015, 15h29
  4. Réponses: 2
    Dernier message: 23/01/2008, 16h26

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