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 :

Type de colonne non valide


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Par défaut Type de colonne non valide
    En exécutant ma page JSP j'ai une erreur de type Type de colonne non valide sachant que je travaille sous tomcat 6.0 et j'ai comme base de donnée oracle 9i,la requête génératrice du code erreur est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <select name="motif" ${(creer)?"disabled":""} >
                <sql:query var="rs" dataSource="jdbc/recDev">select OVR_V_CODE ,OVR_V_LIBELLE   from P_OBJ_VISITES where OVR_V_CODE=?                 
                  <sql:param value="${param.motif}"/>
                </sql:query>
     
    			  <c:forEach var="row" items="${rs.rows}">
     
                  <option value="${row.OVR_V_CODE}" >${row.OVR_V_LIBELLE}</option>
                </c:forEach >
     
              </select>
    le débogage de tomcat m'indique une erreur de setnull pour le paramètre d'entrer dans ma requête.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Très très mauvaise pratique d'inclure du sql dans un jsp . Ta jsp ne devrait traiter que des problématiques de vue et aucunement métier. La limite de l'acceptable serait de faire ton traitement dans une servlet et renseigner les resultats dans une liste que tu transmettras à une jsp.

  3. #3
    Membre confirmé Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Par défaut
    Merci pour votre réponse,je sais que c'est une mauvaise pratique mais le projet est déjà développé moi ma tâche c'est l'évolution et la maintenance,donc je doit garder la même logique,s'il vous plait j'ai besoin d'une réponse

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Ok fallait commencer par nous expliquer ça . Fais nous voir la trace d'erreur complète.

  5. #5
    Membre confirmé Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Par défaut
    Voilà la trace d'erreur complète:
    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
    java.sql.SQLException: Type de colonne non valide
    	oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    	oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
    	oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
    	oracle.jdbc.driver.OracleStatement.get_internal_type(OracleStatement.java:6164)
    	oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.java:1316)
    	oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:2746)
    	oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:3015)
    	org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:165)
    	org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.setParameters(Unknown Source)
    	org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doEndTag(Unknown Source)
    	org.apache.jsp.mainf_jsp._jspx_meth_sql_005fquery_005f5(mainf_jsp.java:4532)
    	org.apache.jsp.mainf_jsp._jspService(mainf_jsp.java:641)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:319)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Ce n'est pas la trace complete, tu dois avoir un "caused By" un peu plus bas, non?

  7. #7
    Membre confirmé Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Par défaut
    En fait c'est l'erreur complète que j'ai affiché sous firefox,j'ai cherché j'ai pas le caused by,ce qui est louche c'est que l'applicatif marche très bien sur une installation de tomcat,mais la même application avec le même code donne cette erreur sur une autre installation de tomcat(environnement de test) sachant que la version de base de donnée et la configuration de tomcat et la même sur les deux serveur.

  8. #8
    Membre émérite

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Par défaut
    Bonjour,

    Peut être une piste avec le contenu de la trace postée : est-ce qu'il n'y aurait pas un problème sur la valeur passée en paramètre de la requête (par exemple une valeur null) ?

    Benoit

  9. #9
    Membre confirmé Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Par défaut
    En fait la valeur passée en paramètre est Null au départ ,mais ça doit causé de problème sachant que la même requête avec le même code jsp ça marche sur une autre page (version prod),est ce que ça doit pas être une configuration de tomcat dont je doit changer?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.java:1316)
    C'est la ligne dans laquelle le serveur mais le setNull pour le paramètre passé en entré de la requête ,c'est la cause de l'erreur comme si le type de la colonne de la table qui est varchar2 n'est pas compatible avec le Null.

  10. #10
    Membre émérite

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Par défaut
    En production le fonctionnement est tout à fait identique : la valeur passée en paramètre est bien Null au départ ?

    Benoit

  11. #11
    Membre confirmé Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Par défaut
    Oui elle est Null au départ: et ça marche sans problème en production ça doit pas être une configuration de tomcat?

  12. #12
    Membre confirmé Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Par défaut
    Est ce que la valeur Null passée en paramètre à la requête cause cette erreur,et pourquoi ça marche sur un autre serveur?bizzard

  13. #13
    Membre émérite

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Par défaut
    Vu ce que j'ai pu lire ici http://www.developpez.net/forums/d40...aredstatement/, je pense que la valeur null est à l'origine du problème.

    Par contre, je ne suis pas en mesure d'expliquer la différence entre les 2 serveurs.

    Il peut éventuellement s'agir d'un problème de configuration (pour Tomcat j'ai un doute car je ne suis pas sûr qu'il ait son mot à dire), mais peut être de l'instance Oracle, de la base Oracle, ou une différence de drivers Oracle sur le Tomcat, ou encore un autre élément relatif à ton architecture...

    Benoit

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/12/2010, 16h04
  2. Trigger INSERT : nom de colonne non valide
    Par arthuro45 dans le forum Développement
    Réponses: 6
    Dernier message: 13/09/2010, 21h58
  3. type de données non valide dans un cast
    Par psyka dans le forum PL/SQL
    Réponses: 3
    Dernier message: 05/03/2009, 11h05
  4. [SSIS] [2K5] : Nom de colonne non valide
    Par Adorien dans le forum SSIS
    Réponses: 0
    Dernier message: 13/05/2008, 16h37
  5. [BO] Nombre de colonnes non valide
    Par LaPanic dans le forum Débuter
    Réponses: 2
    Dernier message: 07/08/2007, 14h18

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