Tomcat/jdbc/datasource

Tomcat/jdbc/datasource - Java - Programmation

Marsh Posté le 07-05-2003 à 17:13:58    

Salut tertousse.
 
J'ai décidé de jeter un coup d'oeil à l'utilisation des datasources avec tomcat.
Et je sèche depuis qlq heures sur un pbm qui est peut-être simple...?
 
Dans mon server.xml j'ai ceci:

Code :
  1. <Context path="/myApp" docBase="myApp" debug="0" reloadable="true" crossContext="true">
  2. <Resource name="jdbc/postgres" auth="Container" type="javax.sql.DataSource"/>
  3. <ResourceParams name="jdbc/postgres">
  4.   <parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>
  5.   <parameter><name>driverClassName</name><value>org.postgresql.Driver</value></parameter>
  6.   <parameter><name>url</name><value>jdbc:postgresql://142.240.107.80:5432/osw</value></parameter>
  7.   <parameter><name>username</name><value>postgres</value></parameter>
  8.   <parameter><name>password</name><value></value></parameter>
  9.   <parameter><name>maxActive</name><value>20</value></parameter>
  10.   <parameter><name>maxIdle</name><value>10</value></parameter>
  11.   <parameter><name>maxWait</name><value>-1</value></parameter>
  12. </ResourceParams>       
  13. </Context>


 
Dans mon web.xml :

Code :
  1. <resource-ref>
  2.     <res-ref-name>jdbc/postgres</res-ref-name>
  3.     <res-type>javax.sql.DataSource</res-type>
  4.     <res-auth>Container</res-auth>
  5. </resource-ref>


 
Et j'ai une page jsp très sale où je fais ceci :
 

Code :
  1. String foo = "Not Connected";
  2. int bar = -1;
  3. try
  4. {
  5.   Context ctx = new InitialContext();
  6.   if(ctx == null ) throw new Exception("Boom - No Context" );
  7.   DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/postgres" );
  8.   if (ds != null)
  9.   {
  10.     Connection conn = ds.getConnection();
  11.          
  12.     if(conn != null) 
  13.     {
  14.         %>
  15.         Connection established :-) <BR>
  16.         <%
  17.         foo = "Got Connection "+conn.toString();
  18.         Statement stmt = conn.createStatement();
  19.         ResultSet rst = stmt.executeQuery("select id, foo, bar from testdata" );
  20.         if(rst.next())
  21.         {
  22.            foo=rst.getString(2);
  23.            bar=rst.getInt(3);
  24.         }
  25.         conn.close();
  26.     }
  27.     else
  28.     {
  29.         %>
  30.         Connection failed :-( <BR>
  31.         <%       
  32.     }
  33.   }
  34. }
  35. catch(Exception e)
  36. {
  37.   java.io.StringWriter sw = new java.io.StringWriter();
  38.   e.printStackTrace(new java.io.PrintWriter(sw));
  39.   sw.flush();
  40.   %>
  41.   Plonk ! Bad config.<BR>
  42.   <%= sw.toString() %>
  43.   <%
  44. }


 
Et ça plonke en me disant :
 
java.sql.SQLException: Cannot load JDBC driver class 'null' at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:529) ...etc...
 
Alors si ça saute aux yeux de qlqn, je lui serais much much reconnaissant. Moi je ne vois plus rien. Peut-être après une nuit de sommeil ?
 
edit: ça plante sur le getConnection()


Message édité par krosso le 07-05-2003 à 17:19:47
Reply

Marsh Posté le 07-05-2003 à 17:13:58   

Reply

Marsh Posté le 07-05-2003 à 18:59:34    

print ds pour voir ce qu'il en dit (pas bonne idée?)

Reply

Marsh Posté le 09-05-2003 à 12:08:46    

Bon, j'ai fini par résoudre mon petit pbm de config.
 
Pour configurer mon bazar j'avais suivi la doc de tomcat, là;
http://jakarta.apache.org/tomcat/t [...] igurations
 
Je ne comprenais pas bien pourquoi on devait définir la datasource dans server.xml ET dans web.xml. Et pour cause....
La doc n'est pas très claire, c'est pas ET mais OU...
 
En virant la section <resource-ref> du web.xml, ça fonctionne.
 
A+,
K.
 
   

Reply

Marsh Posté le 13-03-2004 à 19:33:58    

bah moi j'ai pas cette chance :'(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed