probleme avec DataSource [Resolu]

probleme avec DataSource [Resolu] - Java - Programmation

Marsh Posté le 17-03-2006 à 02:07:25    

Bonjour,
 
Je galere avec les jndi voila mon pb:
 
Mon code:

Code :
  1. Context ctx = new InitialContext();
  2.                         if ( ctx == null ) {
  3.                                 throw new NamingException("Uh oh -- no context!" );
  4.                         }
  5.                         DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/postgres" );
  6.                         if ( ds == null ) {
  7.                                 throw new NamingException("Data source not found!" );
  8.                         }
  9.                         System.out.println("TOP" );
  10.                         Connection con = ds.getConnection(); // <= erreur ici ????
  11.                         System.out.println("TOP" );


 
Mon fichier web.xml:

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


 
et mon fichier server.xml:

Code :
  1. <!-- Global JNDI resources -->
  2.   <GlobalNamingResources>
  3.     <!-- Test entry for demonstration purposes -->
  4.     <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
  5.     <!-- Editable user database that can also be used by
  6.          UserDatabaseRealm to authenticate users -->
  7.     <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
  8.     <Resource name="jdbc/postgres" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost/test"  username="toto" password="toto"/>
  9.   </GlobalNamingResources>


 
voila les infos utiles.
 
Ce que je comprends pas c'est qu'avec un DriversManager tout fonctionne.  

Code :
  1. Class.forName("org.postgresql.Driver" );
  2.                         String url = "jdbc:postgresql://localhost/test?user=toto&password=toto";
  3.                         Connection con = DriverManager.getConnection(url);

Je suppose donc un oublie de ma part mais lequel ????  ;)  
 
Voila toute les idees sont les bienvenues.

Message cité 1 fois
Message édité par celestin1409 le 17-03-2006 à 08:17:58
Reply

Marsh Posté le 17-03-2006 à 02:07:25   

Reply

Marsh Posté le 17-03-2006 à 02:45:30    

ouais, ne dis surtout pas quel est le problème hein


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 17-03-2006 à 02:52:29    

the real moins moins a écrit :

ouais, ne dis surtout pas quel est le problème hein


 
desole je l'avais mis dans le code mais c'est vrai pas tres visible  :ange:  
 

Code :
  1. System.out.println("TOP" );
  2. Connection con = ds.getConnection(); // <= erreur ici ????
  3. System.out.println("TOP" );


 
Voila le probleme se trouve ici mais je sais que c pas un probleme au niveau de mon code mais de ma configuration de jndi.
 
pour info voila l'exception:

Code :
  1. TOP
  2. org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
  3. at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
  4. at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
  5. at test.Test.doPost(Test.java:70)
  6. at test.Test.doGet(Test.java:36)
  7. at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
  8. at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
  9. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
  10. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  11. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  12. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
  13. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
  14. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  15. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
  16. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
  17. at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
  18. at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
  19. at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
  20. at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
  21. at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
  22. at java.lang.Thread.run(Thread.java:595)
  23. Caused by: java.sql.SQLException: No suitable driver
  24. at java.sql.DriverManager.getDriver(DriverManager.java:243)
  25. at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)
  26. ... 19 more

Reply

Marsh Posté le 17-03-2006 à 08:20:28    

celestin1409 a écrit :


et mon fichier server.xml:

Code :
  1. <!-- Global JNDI resources -->
  2.   <GlobalNamingResources>
  3.     <!-- Test entry for demonstration purposes -->
  4.     <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
  5.     <!-- Editable user database that can also be used by
  6.          UserDatabaseRealm to authenticate users -->
  7.     <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
  8.     <Resource name="jdbc/postgres" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost/test"  username="toto" password="toto"/>
  9.   </GlobalNamingResources>




 
Le probleme se trouve ici il faut mettre la balise ressource dans une balise contexte juste avant la balise </host> du fichier server.xml

Reply

Sujets relatifs:

Leave a Replay

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