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

PostgreSQL Discussion :

[JDBC Driver][JSTL] Problème de cast de données


Sujet :

PostgreSQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable outils métier VIGS (Veolia)
    Inscrit en
    Septembre 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable outils métier VIGS (Veolia)
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 80
    Par défaut [JDBC Driver][JSTL] Problème de cast de données
    Bonjour à toutes et à tous,

    Je me débat avec un petit problème de driver JDBC sous PostgreSQL.
    Je développe une petite application de tests des JSTL/JSP/EL sous tomcat et postgreSQL.

    L'appli est formée par une table basique, un formulaire HTML de saisie et une JSP permettant d'enregistrer les données dans la table.

    Description de la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    gihe=> \d ess
                 Table "public.ess"
     Column |          Type          | Modifiers
    --------+------------------------+-----------
     id     | integer                | not null
     text   | character varying(100) |
    En fait, tomcat me renvoie une erreur :

    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
     
    javax.servlet.ServletException: javax.servlet.jsp.JspException: 
        INSERT INTO ESS (ID,TEXT) VALUES (?,?)
     
     
    : ERROR: column "id" is of type integer but expression is of type character varying
    	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:844)
    	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
    	org.apache.jsp.record_jsp._jspService(org.apache.jsp.record_jsp:115)
    	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:322)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    Apparement, le problème proviendrait d'un mauvais mapping des types de données JDBC.
    J'ai essayé avec MySQL, tout fonctionne bien.
    En intégrant les données directement dans la requête; ca fonctionne aussi.
    En fait, postgreSQL fait un mauvais cast des données !

    Si quelqu'un avait une idée, je suis preneur de toute piste, url, doc, ...
    Merci d'avance.

    Ensemble des codes pour info :
    -------------------------------------


    Le formulaire HTML :
    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
     
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <html>
    <head>
    <title>Simple Example</title>
    </head>
    <body>
        <h1> Saisie de données  </h1>
        <form name="saisie" action="record.jsp" method="get">
            Code :<input type="text" name="code"/>
            Text :<input type="text" name="text"/>
            <input type="submit" name="submit"/>
        </form>
    </body>
    </html>
    La JSP :
    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
     
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    <%@ page isELIgnored ="false" %> 
    <html>
    <head>
    <title>Simple Example</title>
    </head>
    <body>
     
    <sql:update>
        INSERT INTO ESS (ID,TEXT) VALUES (?,?)
        <sql:param>${param.code} </sql:param>
        <sql:param>${param.text}</sql:param>
    </sql:update>
     
    </body>
    </html>
    et le fichier web.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
     
    <web-app>
        <description>Learning JSTL (or whatever you like</description>
        <context-param>
    		<param-name>javax.servlet.jsp.jstl.sql.dataSource</param-name>
    		<param-value>jdbc:postgresql://127.0.0.1/gihe,org.postgresql.Driver,gihe,Dlm2ppedGiHe</param-value>
    	</context-param>  
    </web-app>

  2. #2
    Membre confirmé
    Homme Profil pro
    Responsable outils métier VIGS (Veolia)
    Inscrit en
    Septembre 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable outils métier VIGS (Veolia)
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 80
    Par défaut
    Après moultes lectures de divers forums, j'ai pu trouvé une solution.
    En fait il faut utiliser les pilotes JDBC en version 7.3.

    On peut les télécharger içi
    http://jdbc.postgresql.org/download.html

    Télécharger la version 7.3 JDBC 3.

    Cela résout le problème.

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

Discussions similaires

  1. mysql.jdbc.Driver problème avec Eclipse
    Par whowho50 dans le forum Android
    Réponses: 3
    Dernier message: 28/03/2013, 10h04
  2. Cast de données - problème mémoire
    Par black-falco dans le forum Général Python
    Réponses: 13
    Dernier message: 27/08/2010, 01h27
  3. Réponses: 6
    Dernier message: 27/07/2009, 17h27
  4. Problème de cast du Type de données Money
    Par verbal34 dans le forum Développement
    Réponses: 1
    Dernier message: 04/08/2008, 11h06
  5. Réponses: 2
    Dernier message: 05/01/2006, 03h40

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