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 :

Source de données introuvable


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club Avatar de abdoinfo
    Inscrit en
    Septembre 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 132
    Points : 50
    Points
    50
    Par défaut Source de données introuvable
    Salut tout le monde

    J’ai essai depuis ce matin de créer une application web qui se connecte a une base de donnée MySQL et affiche le contenu d’une table, pour cela j’ai développé une servlet qui se charge de la connexion et l’affichage de données sur l’écran, je vous donne les étapes réalisées jusqu'à maintenant afin que vous puissiez trouver le problème :


    1. j’ai téléchargé et installé MySQL
    2. j’ai créé une base de données
    3. j’ai téléchargé et installé apache tomcat 6
    4. j’ai terminé de créer l’arborescence de l’application web y compris la servlet et la génération de fichier .class
    5. j’ai téléchargé et installé mysql-connector-odbc-5.1.6-win32.msi pour rendre la base de donnée accessible par le pilote ODBC et j’ai créé le DSN (Data Source Name) et quand je teste la connexion,une boite de dialogue m’indique le message suivant : connection successful.

    6. j’ai déployé l’application sans aucun problème

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    import java.util.*;
     
     
    public class gener3 extends HttpServlet{
    // le titre de la page
    private final String title="Génération d'un formulaire";
    // la base de données des valeurs de liste
    private final String DSNValeurs="odbc-valeurs";
    private final String admDbValeurs="root";
    private final String mdpDbValeurs="france";
     
     
    // valeurs de liste
    private String[] valeurs=null;
    // msg d'erreur
    private String msgErreur=null;
    // code HTML
    private final String HTML1=
    "<html>" +
    "<head>" +
    "<title>Génération de formulaire</title>"+
    "</head>" +
    "<body>" +
    "<h3>Choisissez un nombre</h3>"+
    "<hr>" +
    "<form method=\"POST\">";
    private final String HTML2="<input type=\"submit\" value=\"Envoyer\"></form>\n";
    private final String HTML3="</body>\n</html>";
    // GET
    public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws IOException, ServletException{
    // on indique au client le type de document envoyé
    response.setContentType("text/html");
    // flux de sortie
    PrintWriter out=response.getWriter();
    // l'initialisation de la servlet s'est-elle bien passée ?
    if (msgErreur!=null){
    // il y a eu une erreur - on génère une page d'erreur
    out.println("<html><head><title>"+title+"</title></head>");
    out.println("<body><h3>Application indisponible ("+msgErreur+
    ")</h3></body></html>");
    return;
    }//if
    // on récupère l'éventuel choix de l'utilisateur
    String choix=request.getParameter("cmbValeurs");
    if(choix==null) choix="";
    // on envoie le formulaire
    // début
    out.println(HTML1);
    // combo
    out.println("<select name=\"cmbValeurs\" size=\"1\">");
    String selected="";
    for (int i=0;i<valeurs.length;i++){
    if(valeurs[i].equals(choix)) selected="selected"; else selected="";
    out.println("<option "+selected+">"+valeurs[i]+"</option>");
    }//for
    out.println("</select>");
    // suite formulaire
    out.println(HTML2);
    if(! choix.equals("")){
    // on affiche le choix de l'utilisateur
    out.println("<hr>Vous avez choisi le nombre <h2>"+choix+"</h2>");
    }//if
    // fin du formulaire
    out.println(HTML3);
    }//GET
     
    // POST
    public void doPost(HttpServletRequest request,HttpServletResponse response)
    throws IOException, ServletException{
    // on renvoie sur GET
    doGet(request,response);
    }//POST
    // initialisation de la servlet
    public void init(){
    // remplit le tableau des valeurs à partir d'une base de données ODBC
    // de nom DSN : DSNvaleurs
    Connection connexion=null;
    Statement st=null;
    ResultSet rs=null;
    try{
    // connexion à la base ODBC
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     
    connexion=DriverManager.getConnection("jdbc:odbc:"+DSNValeurs,admDbValeurs,mdpDbValeurs);
     
     
    // objet Statement
    st=connexion.createStatement();
    // exécution requête select pour récupérer les valeurs
    rs=st.executeQuery("select valeur from Tvaleurs");
    // les valeurs sont récupérées et mises dans un tableau dynamique
    ArrayList lstValeurs=new ArrayList();
    while(rs.next()){
    // on enregistre la valeur dans la liste
    lstValeurs.add(rs.getString("valeur"));
    }//while
    // transformation liste --> tableau
    valeurs=new String[lstValeurs.size()];
    for (int i=0;i<lstValeurs.size();i++){
    valeurs[i]=(String)lstValeurs.get(i);
    }
    }catch(Exception ex){
    // problème
    msgErreur=ex.getMessage();
    }
    finally{
    try{rs.close();}catch(Exception ex){}
    try{st.close();}catch(Exception ex){}
    try{connexion.close();}catch(Exception ex){}
    }//try
    }//init
    }//classe
    Jusqu’au la tout va bien, mais quand je tape l’adresse dans le navigateur pour voir le résultat il m’apparaît ce message :
    Application indisponible ([Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié)
    Avez-vous une réponse ?

    Merci

  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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Pourquoi un pilote ODBC et pas JDBC ?

  3. #3
    Membre du Club Avatar de abdoinfo
    Inscrit en
    Septembre 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 132
    Points : 50
    Points
    50
    Par défaut
    Ben je n’exagère pas le pilote ODBC mais si vous aviez une solution avec JDBC je ne serai pas contre, l’essentiel une solution qui marche

    Merci

  4. #4
    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
    Il faut récupérer le jar mysql-connector-java-x.x.x-bin.jar.
    Dans un projet web, on place le jar dans le répertoire /WEB-INF/lib

    Pour établir une connexion, la solution basique consiste à faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Class.forName("com.mysql.jdbc.Driver");
    Connection connection = DriverManager.getConnection("jdbc:mysql://xx:yy/zz", "user", "password");
    où :
    xx = ip du serveur MySQL ou localhost
    yy = port
    zz = schéma de la base à utiliser

  5. #5
    Membre du Club Avatar de abdoinfo
    Inscrit en
    Septembre 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 132
    Points : 50
    Points
    50
    Par défaut
    ça marche très bien

    Merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/06/2014, 02h22
  2. [WD16] Source de données introuvable dans état.
    Par philippe30 dans le forum WinDev
    Réponses: 2
    Dernier message: 04/03/2014, 15h32
  3. Gestionnaire de pilotes ODBC et source de données introuvable
    Par AITELMAATI dans le forum Bases de données
    Réponses: 6
    Dernier message: 13/08/2010, 15h11
  4. Réponses: 3
    Dernier message: 01/04/2007, 10h26
  5. [PowerBuilder] [MyODBC] Source de données introuvable
    Par loicmillion dans le forum Powerbuilder
    Réponses: 5
    Dernier message: 25/01/2005, 14h58

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