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

Tomcat et TomEE Java Discussion :

[Tomcat] Pool de connexion : Cannot create JDBC driver of class ''for connect URL nul


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut [Tomcat] Pool de connexion : Cannot create JDBC driver of class ''for connect URL nul
    Bonjour,

    je souhaite configurer un pool de connexion sous Tomcat 4.1. Lorsque je souhaite y acceder par un getConnection() j'obtiens le message d'erreur suivant :

    org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
    Pour arriver à ce jolie bug, j'ai procédé comme ceci :

    Dans le webapps\monAppli\WEB-INF\web.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <resource-ref>
            <description>Oracle Development Datasource</description>
            <res-ref-name>jdbc/bioMJ</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
        </resource-ref>
    Dans le webapps\monAppli\WEB-INF\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
    32
    33
    34
    35
     <Resource auth="Container" description="CDP Datasource TMA" name="jdbc/bioMJ" scope="Shareable" type="javax.sql.DataSource"/>
        <ResourceParams name="jdbc/bioMJ">
          <parameter>
            <name>validationQuery</name>
            <value>select * from P_UTILISATEUR</value>
          </parameter>
          <parameter>
            <name>maxWait</name>
            <value>500</value>
          </parameter>
          <parameter>
            <name>maxActive</name>
            <value>4</value>
          </parameter>
          <parameter>
            <name>password</name>
            <value>CDPTMA</value>
          </parameter>
          <parameter>
            <name>url</name>
            <value>jdbc:oracle:thin:@localhost:1520:xe</value>
          </parameter>
          <parameter>
            <name>driverClassName</name>
            <value>oracle.jdbc.driver.OracleDriver</value>
          </parameter>
          <parameter>
            <name>maxIdle</name>
            <value>0</value>
          </parameter>
          <parameter>
            <name>username</name>
            <value>CDPTMA</value>
          </parameter>
        </ResourceParams>
    Le tout encadré des balises <GlobalNamingResources>

    Et ensuite j'ai édité un fichier xml à la racine de webapps :

    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
    <!-- CDP Context -->
    <Context path="/cdpApp" docBase="/cdpApp" debug="1">
    	<Environment name="logName" value="C:\Program Files\Apache Software Foundation\Tomcat 4.1\webapps\cdpApp\log\traceCdp" 
    		type="java.lang.String" override="false" />
     
    	<Environment name="report/SGBDUsr" value="CDPTMA" override="false" 
    		type="java.lang.String"/>
     
    	<Environment name="report/SGBDPwd" value="CDPTMA" override="false"
    		type="java.lang.String"/>
     
    	<Environment name="report/reportServerAddress" value="127.0.0.1" 
    		type="java.lang.String" override="false"/>		
     
    	<Environment name="printer/confFile" 
    		value="C:\Program Files\Apache Software Foundation\Tomcat 4.1\webapps\cdpApp\WEB-INF\PrinterConfig.properties" 
    		type="java.lang.String" override="false"/>		
     
    	<Environment name="fr.biomerieux.cdp.ClassPeriph.2.1" 
    		value="fr.biomerieux.cdp.bal.BalRmiTest" 
    		type="java.lang.String" override="false"/>		
     
    	<Environment name="fr.biomerieux.cdp.ClassPeriph.1.2" 
    		value="fr.biomerieux.cdp.bal.BalRmiTest" 
    		type="java.lang.String" override="false"/>		
     
    	<Environment name="fr.biomerieux.cdp.ClassPeriph.1.4" 
    		value="fr.biomerieux.cdp.bal.BalRmiTest" 
    		type="java.lang.String" override="false"/>		
     
    	<Environment name="fr.biomerieux.cdp.ClassPeriph.4.1" 
    		value="fr.biomerieux.cdp.bal.BalRmiTest" 
    		type="java.lang.String" override="false"/>		
     
     
    	<!-- cdp database -->    
        <Resource auth="Container" description="CDP Datasource TMA" name="jdbc/bioMJ" scope="Shareable" type="javax.sql.DataSource"/>
        <ResourceParams name="jdbc/bioMJ">      
          <parameter>
          	<name>factory</name>
        	<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
         </parameter>
          <parameter>
            <name>validationQuery</name>
            <value>select * from P_UTILISATEUR</value>
          </parameter>
          <parameter>
            <name>maxWait</name>
            <value>1800</value>
          </parameter>
          <parameter>
            <name>maxActive</name>
            <value>10</value>
          </parameter>
          <parameter>
            <name>password</name>
            <value>CDPTMA</value>
          </parameter>
          <parameter>
            <name>url</name>
            <value>jdbc:oracle:thin:@127.0.0.1:1521:XE</value>
          </parameter>
          <parameter>
            <name>driverClassName</name>
            <value>oracle.jdbc.driver.OracleDriver</value>
          </parameter>
          <parameter>
            <name>maxIdle</name>
            <value>0</value>
          </parameter>
          <parameter>
            <name>username</name>
            <value>CDPTMA</value>
          </parameter>
          <parameter>
          	<name>removeAbandoned</name>
            <value>true</value>
          </parameter>
          <parameter>
          	<name>removeAbandonedTimeout</name>
            <value>600</value>
          </parameter>            
        </ResourceParams>
     
        <Logger className="org.apache.catalina.logger.FileLogger"
    		prefix="localhost_cdp_log." suffix=".txt" timestamp="true"/>
     
    </Context>
    Et voila mon bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		Context l_ctx = (Context) (new InitialContext()).lookup("java:comp/env");
    		_mPoolName = AbstractConnectionManager.nameSGBD;
    		_mPoolConnections = (DataSource) l_ctx.lookup("jdbc/" + _mPoolName);
    Connection myConn = _mPoolConnections.getConnection();
    Sachant que la variable "_mPoolName" me retourne bien la valeur attendu, a savoir "bioMJ".

    je précise que je dispose de la version 10.2.0.1 d'oracle (de mémoire). j'ai donc copié le jar classes12.jar dans /common/lib de tomcat.

    Etant donné que je ne connais pas trop le fonctionnement des pools de connexion, pouvez me renseigner d'ou pourrait provenir l'erreur ?

    Merci d'avance !
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    peut etre le server.xml utilisé par tomcat est celui par defaut et pas celui que tu as définis..
    Ce n'est pas commun de mettre le server.xml dans le web-inf de ton application, le fichier de configuration doit rester dans le dossier d'installation tomcat ou un projet partagé par les autres applications..

  3. #3
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par Sniper37
    peut etre le server.xml utilisé par tomcat est celui par defaut et pas celui que tu as définis..
    Ce n'est pas commun de mettre le server.xml dans le web-inf de ton application, le fichier de configuration doit rester dans le dossier d'installation tomcat ou un projet partagé par les autres applications..
    Merci pour le conseil, je découvre un peu l'architecture... je vais tenter de placer les infos dans le server.xml global de tomcat.
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  4. #4
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    Bon beh toujours le même problème : je viens de supprimer le server.xml du dossier webapps/monAppli/WEB-INF/ et j'ai rajouter les quelques lignes dans le server.xml de TOMCAT/Conf...

    Il doit y avoir quelque chose que je ne saisie pas...le problème est donc toujours en cours.
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    la description de la connexion la base de données ne doit pas etre dans le context, il est preferable d'ailleurs de definnir le context de l'application dans un fichier xml et pas dans le server.xml..

    dans le server.xml tu dois avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <GlobalNamingResources>
    <Resource name="nom de ta DS" scope="Shareable" type="javax.sql.DataSource"/>
     <ResourceParams name="nom de ta DS">
    <parameter>
            <name>maxActive</name>
            <value>100</value>
          </parameter>
    ...
    ...
     </ResourceParams>
     
    </GlobalNamingResources>

  6. #6
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    J'ai effectué les modifs, ca ne fonctionne pas mieux. Je ne comprends pas le role de chaque fichier de config je crois. Peut-on m'expliquer le role de server.xml, web.xml et les fameux fichiers de contexte ? A quel endroit doit-on les placer ? Je commence à m'embrouiller tout seul
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par nesbla
    J'ai effectué les modifs, ca ne fonctionne pas mieux. Je ne comprends pas le role de chaque fichier de config je crois. Peut-on m'expliquer le role de server.xml, web.xml et les fameux fichiers de contexte ? A quel endroit doit-on les placer ? Je commence à m'embrouiller tout seul
    le server.xml est pour la configuration du serveur, le web.xml c'est le descriptif du deployement de ton application il doit etre dans le dossier WEB-INF..

    pour y voir clair, il faut lire la doc..

  8. #8
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    Bon beh ca a fini par fonctionner :

    J'ai supprimer toute référence à ma connexion dans les fichiers de TOMCAT/Conf et j'ai modifié mon fichier xml (de contexte ?) à la racine de webapps en mettant les override à "true". Je suppose que l'erreur venait de là...il cherchait à récupérer la valeur des variables d'environnement ailleurs sans doute.

    maConf.xml a la racine de webapps :

    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
    <!-- CDP Context -->
    <Context path="/cdpApp" docBase="/cdpApp" debug="0">
    	<Environment name="logName" value="C:/Program Files/Apache Software Foundation/Tomcat 4.1/webapps/cdpApp/log/traceCdp" 
    		type="java.lang.String" override="false" />
     
    	<Environment name="report/SGBDUsr" value="CDPTMA" override="true" 
    		type="java.lang.String"/>
     
    	<Environment name="report/SGBDPwd" value="CDPTMA" override="true"
    		type="java.lang.String"/>
     
    	<Environment name="report/reportServerAddress" value="127.0.0.1" 
    		type="java.lang.String" override="false"/>		
     
    	<Environment name="printer/confFile" 
    		value="C:/Program Files/Apache Software Foundation/Tomcat 4.1/webapps/cdpApp/WEB-INF/PrinterConfig.properties" 
    		type="java.lang.String" override="true"/>		
     
    	<Environment name="fr.biomerieux.cdp.ClassPeriph.2.1" 
    		value="fr.biomerieux.cdp.bal.BalRmiTest" 
    		type="java.lang.String" override="true"/>		
     
    	<Environment name="fr.biomerieux.cdp.ClassPeriph.1.2" 
    		value="fr.biomerieux.cdp.bal.BalRmiTest" 
    		type="java.lang.String" override="true"/>		
     
    	<Environment name="fr.biomerieux.cdp.ClassPeriph.1.4" 
    		value="fr.biomerieux.cdp.bal.BalRmiTest" 
    		type="java.lang.String" override="true"/>		
     
    	<Environment name="fr.biomerieux.cdp.ClassPeriph.4.1" 
    		value="fr.biomerieux.cdp.bal.BalRmiTest" 
    		type="java.lang.String" override="true"/>		
     
     
    	<!-- cdp database -->    
        <Resource auth="Container" description="CDP Datasource TMA" name="jdbc/bioMJ" scope="Shareable" type="javax.sql.DataSource"/>
        <ResourceParams name="jdbc/bioMJ">      
          <parameter>
          	<name>factory</name>
        	<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
         </parameter>
          <parameter>
            <name>validationQuery</name>
            <value>select * from P_UTILISATEUR</value>
          </parameter>
          <parameter>
            <name>maxWait</name>
            <value>1800</value>
          </parameter>
          <parameter>
            <name>maxActive</name>
            <value>10</value>
          </parameter>
          <parameter>
            <name>password</name>
            <value>CDPTMA</value>
          </parameter>
          <parameter>
            <name>url</name>
            <value>jdbc:oracle:thin:@127.0.0.1:1521:xe</value>
          </parameter>
          <parameter>
            <name>driverClassName</name>
            <value>oracle.jdbc.OracleDriver</value>
          </parameter>
          <parameter>
            <name>maxIdle</name>
            <value>0</value>
          </parameter>
          <parameter>
            <name>username</name>
            <value>CDPTMA</value>
          </parameter>
          <parameter>
          	<name>removeAbandoned</name>
            <value>true</value>
          </parameter>
          <parameter>
          	<name>removeAbandonedTimeout</name>
            <value>600</value>
          </parameter>            
        </ResourceParams>
     
        <Logger className="org.apache.catalina.logger.FileLogger"
    		prefix="localhost_cdp_log." suffix=".txt" timestamp="true"/>
     
    </Context>
    voilou ! Merci
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour je vois que sur votre discussion (qui commence à dater) vous avez parlé de problèmes de connexion avec JDBC et j'aimerais vous demander de l'aide pour mon application.
    Avant tout je suis débutant, et j'arrive pas à connecter TOMCAT à ma base de données Postgres parce que je maitrise pas encore la façon avec laquelle on doit configurer les fichier web.xml et serveur.xml (à savoir que je viens de découvrir qu'on doit créer un serveur.xml en consultant votre discussion ) et donc là je bloque et j'aimerais bien que vous me donniez un coup de pouce vu que vous êtes plus expérimentés que moi.
    Merci d'avance.
    en fait je pense pas que mon appli soit aussi complexe que la votre!!

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

Discussions similaires

  1. Cannot create JDBC driver of class '' for connect URL 'null'
    Par edenyorke dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 27/06/2011, 19h29
  2. Réponses: 1
    Dernier message: 13/07/2010, 12h34
  3. Cannot create JDBC driver of class '' for connect URL 'null'
    Par ensisoft dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 09/10/2007, 19h05
  4. Cannot create JDBC driver of class '' for connect URL 'null'
    Par Elwe31 dans le forum Tomcat et TomEE
    Réponses: 14
    Dernier message: 11/07/2007, 17h43
  5. Réponses: 7
    Dernier message: 10/09/2006, 11h58

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