Précédent   Forum des professionnels en informatique > Java > Serveurs, conteneurs, et Java EE > Autres
Autres Vos questions sur les autres serveurs d'application Java.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/04/2007, 12h33   #1
Membre habitué
 
Avatar de nesbla
 
Inscription : mai 2002
Messages : 220
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 220
Points : 113
Points : 113
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 :

Citation:
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 :
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 :
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 :
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 :
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 !
nesbla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 13h17   #2
Rédacteur/Modérateur
 
Inscription : juin 2003
Messages : 4 176
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 176
Points : 4 280
Points : 4 280
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..
Sniper37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 13h34   #3
Membre habitué
 
Avatar de nesbla
 
Inscription : mai 2002
Messages : 220
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 220
Points : 113
Points : 113
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 !
nesbla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 13h57   #4
Membre habitué
 
Avatar de nesbla
 
Inscription : mai 2002
Messages : 220
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 220
Points : 113
Points : 113
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 !
nesbla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 14h17   #5
Rédacteur/Modérateur
 
Inscription : juin 2003
Messages : 4 176
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 176
Points : 4 280
Points : 4 280
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 :
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>
Sniper37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 14h35   #6
Membre habitué
 
Avatar de nesbla
 
Inscription : mai 2002
Messages : 220
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 220
Points : 113
Points : 113
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 !
nesbla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 14h48   #7
Rédacteur/Modérateur
 
Inscription : juin 2003
Messages : 4 176
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 176
Points : 4 280
Points : 4 280
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..
Sniper37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 16h56   #8
Membre habitué
 
Avatar de nesbla
 
Inscription : mai 2002
Messages : 220
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 220
Points : 113
Points : 113
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 :
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 !
nesbla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 12h02   #9
Invité de passage
 
Homme
Inscription : 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
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!!
ali4151 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h19.


 
 
 
 
Partenaires

Hébergement Web