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

Développement Web en Java Discussion :

Problème de création de pool de connexion


Sujet :

Développement Web en Java

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Points : 208
    Points
    208
    Par défaut Problème de création de pool de connexion
    Bonsoir,

    je suis sous Ubuntu feisty 7.04, j'utilise eclipse3.2 + tomcat5.5.
    J'ai créé la base de données MySQL avec phpmyadmin.
    je suis le tutoriel sur la gestion des pools de connexions (ici).
    lorsque je charge le contexte de mon appli et que j'appelle la servlet approprié, l'erreur suivante s'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception sur l'acces a la BDD : org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'
    J'ai fait des recherches sur google et sur dvp.com, mais toutes les solutions déja proposées ne m'ont pas été d'une grande aide.

    voici le web.xml (dans ./WEB-INF/)
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!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>
     
    	<display-name>TestPool</display-name>
    	<servlet>
    		<servlet-name>TestPool</servlet-name>
    		<servlet-class>org.obit.TestPool</servlet-class>
    	</servlet>
     
    	<servlet-mapping>
    		<servlet-name>TestPool</servlet-name>
    		<url-pattern>/testpool</url-pattern>
    	</servlet-mapping>
     
     
    	<resource-ref>
    		<res-ref-name>jdbc/SiteWeb</res-ref-name>
    		<res-type>javax.sql.DataSource</res-type>
    		<res-auth>Container</res-auth>
    	</resource-ref>
     
    </web-app>
    et le server.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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    ...
     
    <Context path="/SiteWeb" reloadable="true" docBase="/home/obit/dev/java/projet/SiteWeb">
                   <!-- <ResourceLink name="jdbc/SiteWeb" global="jdbc/SiteWeb" type="javax.sql.DataSource"/> -->
                    <Resource name="jdbc/SiteWeb" auth="Container" type="javax.sql.DataSource"/>
                    <ResourceParams name="jdbc/SiteWeb">
                            <parameter>
                                    <name>user</name>
                                    <value>root</value>
                            </parameter>
                            <parameter>
                                    <name>password</name>
                                    <value>****</value>
                            </parameter>
                            <parameter>
                                    <name>driverClassName</name>
                                    <value>org.gjt.mm.mysql.Driver</value>
                            </parameter>
                            <parameter>
                                    <name>url</name>
                                    <value>jdbc:mysql://localhost/site_web</value>
                            </parameter>
                    </ResourceParams>
            </Context>
     
          </Host>
     
        </Engine>
     
      </Service>
    j'ai bien mis le mysql-connector dans <TOMCAT_HOME>/common/lib, dans le build path de mon projet également mais rien n'y fait...

    Je ne vois pas quel est le problème!

    Merci pour votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    Il faut mieux configurer les connexion dans l'environnement restreint de l'application et non dans le fichier global.

    Suit la creation du fichier context.xml dans ce thread et vois si ca marche.
    http://www.developpez.net/forums/sho...d.php?t=425656

    Si ca ne marche pas, montre le code que tu utilises.

    Farid.

  3. #3
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Points : 208
    Points
    208
    Par défaut
    j'ai supprimé les données que j'avais ajouté dans server.xml, créé le dossier META-INF dans l'arborescence de mon projet. J'ai créé le fichier context.xml suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/SiteWeb" reloadable="true" docBase="/home/obit/dev/java/projet/SiteWeb">
            <Resource name="jdbc/SiteWeb" auth="Container" type="javax.sql.DataSource"
            		  username="root" password="****" driverClassName="org.gjt.mm.mysql.Driver"
            		  url="jdbc:mysql://localhost/site_web"/>
     
    </Context>
    et le WEB-INF/web.xml est le suivant :
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!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>
     
    	<display-name>TestPool</display-name>
    	<servlet>
    		<servlet-name>TestPool</servlet-name>
    		<servlet-class>org.obit.TestPool</servlet-class>
    	</servlet>
     
    	<servlet-mapping>
    		<servlet-name>TestPool</servlet-name>
    		<url-pattern>/testpool</url-pattern>
    	</servlet-mapping>
     
     
    	<resource-ref>
    		<res-ref-name>jdbc/SiteWeb</res-ref-name>
    		<res-type>javax.sql.DataSource</res-type>
    		<res-auth>Container</res-auth>
    	</resource-ref>
     
    </web-app>
    L'erreur est maintenant la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception sur l'acces a la BDD : org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
    Il ne trouve meme plus le .jar maintenant, comment se fait il ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    Quelques pistes:

    Dans l'url il ne manque pas le port du server mysql ?
    tu es sur d'avoir mis le bon driver jdbc dans $CATALINA_HOME/common/lib/ ?
    si oui met en aussi une copie dans .../WEB-INF/lib/
    redemarre tomcat.
    Montre nous ton code java.

    Farid.

  5. #5
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Points : 208
    Points
    208
    Par défaut
    Citation Envoyé par Farid_92 Voir le message
    Quelques pistes:

    Dans l'url il ne manque pas le port du server mysql ? j'accede à mon gestionnaire de bdd en tapant localhost/phpmyadmin, je pense que ça passe par le port 80 de base ...

    tu es sur d'avoir mis le bon driver jdbc dans $CATALINA_HOME/common/lib/ ? mysql-connector-java-5.1.5-bin.jar, c'est le bon je pense ?!
    si oui met en aussi une copie dans .../WEB-INF/lib/il y est également
    redemarre tomcat.c'est fait, mais rien n'a changé
    Montre nous ton code java.

    Farid.
    Voici la seule classe (servlet) que j'utilise
    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
     
    package org.obit;
     
    import javax.servlet.http.HttpServlet;
    import java.io.*;
    import java.sql.*;
    import javax.naming.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.sql.*;
     
    public class TestPool extends HttpServlet {
     
    	public static final long serialVersionUID = 200710122117L;
    	private DataSource ds;
     
    	protected void doGet(HttpServletRequest req, HttpServletResponse res) 
    		throws ServletException, IOException {
     
    		res.setContentType("text/html");
    		PrintWriter out = res.getWriter();
    		out.println("<html><head></head>");
    		out.println("<body>");
     
    		Connection con = null;
    		Statement s = null;
    		ResultSet rs = null;
     
    		try {
     
    			con = ds.getConnection();
    			s = con.createStatement();
    			rs = s.executeQuery("SELECT * FROM contact");
     
    //			System.out.println("DataSource class = "+ds.getClass());
     
    			while(rs.next()) {
     
    				out.println("last name : "+rs.getString("last_name"));
    				out.println("<br />");
    				out.println("first name : "+rs.getString("first_name"));
    				out.println("<br />");
    			}
     
    		} catch(SQLException e) {
    			res.sendError(500, "Exception sur l'acces a la BDD : "+e);
    		}
     
    		finally {
     
    			if(rs != null) {
    				try {
    					rs.close();
    				} catch(SQLException e) {}
     
    				rs = null;
    			}
     
    			if(s != null) {
    				try {
    					s.close();
    				} catch(SQLException e) {}
     
    				s = null;
     
    			}
     
    			if(con != null) {
    				try {
    					con.close();
    				} catch(SQLException e) {}
     
    				con = null;
    			}
     
    			out.println("</body>");
    			out.println("</html>");
    			out.close();
    		}
     
    	}
     
    	public void init() throws ServletException {
    		try {
    			Context initCtx = new InitialContext();
    			ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/SiteWeb");
    		} catch(Exception e) {
    			throw new UnavailableException(e.getMessage());
    		}
    	}
     
     
    }
    Merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    et si dans le context.xml, tu remplaces "org.gjt.mm.mysql.Driver" par "com.mysql.jdbc.Driver" ca donne quoi ?
    PS: les <resource-ref>...</resource-ref> sont aussi a retirer

  7. #7
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Points : 208
    Points
    208
    Par défaut
    bien, on a avancé là.
    En fait, je n'avais pas bien saisi ce que tu voulais quand tu disais de mettre le driver dans WEB-INF/lib. J'ai fait Clic droit sur lib --> Import --> Archive File --> mysql-connector-... --> com/mysql/jdbc/Driver

    Maintenant l'erreur est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Servlet TestPool n'est pas disponible.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut


    jdbc est reglé.
    maintenant juste un probleme de path....
    dans web.xml change <url-pattern>/testpool</url-pattern>
    en <url-pattern>/TestPool</url-pattern>
    Je ne pense pas que ca soit le probleme mais on sait jamais.
    Vois aussi dans tes pages jsp comment tu appelles cette servlet.

  9. #9
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Points : 208
    Points
    208
    Par défaut
    pour moi, le problème est résolu !

    Merci beaucoup pour ton aide
    je verrais demain pour le reste

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

Discussions similaires

  1. problème création pool de connexion glassfish
    Par int59 dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 07/04/2014, 22h27
  2. Problème création pool de connexion [débutant]
    Par as_ping dans le forum Glassfish et Payara
    Réponses: 0
    Dernier message: 18/08/2010, 15h47
  3. Problème de pool de connexion Tomcat
    Par xfacq dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 04/03/2007, 17h11
  4. [Tomcat] Problème du pooling de connexion
    Par divail dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 27/07/2006, 14h27
  5. Création d'un pool de connexion
    Par bernie.noel dans le forum Bases de données
    Réponses: 1
    Dernier message: 04/04/2006, 09h33

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