jndi exception

jndi exception - Java - Programmation

Marsh Posté le 05-02-2006 à 23:52:24    

Salut à tous !!!
Voila je suis en train d'essayer d'utiliser jndi et j'obtient cette exception:

Code :
  1. Cannot create PoolableConnectionFactory (Communications link failure due to underlying exception:
  2. ** BEGIN NESTED EXCEPTION **
  3. java.net.SocketException
  4. MESSAGE: java.net.ConnectException: Connection refused
  5. STACKTRACE:
  6. java.net.SocketException: java.net.ConnectException: Connection refused
  7. at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
  8. at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
  9. at com.mysql.jdbc.Connection.createNewIO(Connection.java:2555)
  10. at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
  11. at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
  12. at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
  13. at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
  14. at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
  15. at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
  16. at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
  17. at data.Test2.doGet(Test2.java:115)
  18. at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
  19. at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
  20. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
  21. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  22. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  23. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
  24. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
  25. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  26. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
  27. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
  28. at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
  29. at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
  30. at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
  31. at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
  32. at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
  33. at java.lang.Thread.run(Thread.java:595)
  34. ** END NESTED EXCEPTION **
  35. Last packet sent to the server was 18 ms ago.)


 
enfin bref je vois vraiment pas !
 
pour info la base est mysql:
 
et server.xml:
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/dbtest" password="test" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/dbtest" username="celestin"/>
 
voila merci d'avance ...

Reply

Marsh Posté le 05-02-2006 à 23:52:24   

Reply

Marsh Posté le 06-02-2006 à 15:41:52    

Vérifies ton driver pour voir s'il est bon.
Je pense que le problème viendrait de ton driver.


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
Reply

Marsh Posté le 06-02-2006 à 15:45:33    

euh,  
MESSAGE: java.net.ConnectException: Connection refused
 
c'est pas clair ?


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

Marsh Posté le 06-02-2006 à 21:42:41    

axk47 a écrit :

Vérifies ton driver pour voir s'il est bon.
Je pense que le problème viendrait de ton driver.


 
Le drivers c :
mysql-connector-java-3.1.12.tar.gz

Reply

Marsh Posté le 06-02-2006 à 21:43:09    

the real moins moins a écrit :

euh,  
MESSAGE: java.net.ConnectException: Connection refused
 
c'est pas clair ?


 
C'est a dire  :??:

Reply

Marsh Posté le 06-02-2006 à 21:46:21    

Pour info voila le code de ma servlet :
 

Code :
  1. protected void doGet(HttpServletRequest request,
  2.                         HttpServletResponse response) throws ServletException,
  3.                         IOException {
  4.                 response.setContentType("text/html" );
  5.                 PrintWriter out = response.getWriter();
  6.                 String jndiname = request.getParameter("jndiname" );
  7.                 if (jndiname==null) {
  8.                         jndiname = "jdbc/dbtest";
  9.                         log("No parameter given, using default jndi name"+jndiname);
  10.                 }
  11.                 log("Starting the test" );
  12.                 try {
  13.                         Context context = new InitialContext();
  14.                         log("Context: " + context.getNameInNamespace());
  15.                         DataSource ds = (DataSource) context.lookup("java:comp/env/"+jndiname);
  16.                         log("Got the data source" );
  17.                         Connection con = ds.getConnection();
  18. //                        Class.forName("com.mysql.jdbc.Driver" ).newInstance();
  19. //                        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbtest;create=true;user=celestin;password=test" );
  20.                         DatabaseMetaData data = con.getMetaData();
  21.                         out.println("<h1>Information regarding JNDI name "+jndiname
  22.                                         +"</h1>" );
  23.                         out.println("<table>" );
  24.                         int [] intdatas =
  25.                         { data.getDatabaseMajorVersion(),data.getDatabaseMinorVersion(),data.getDriverMajorVersion(),data.getDriverMinorVersion()};
  26.                         ResultSet res = data.getCatalogs();
  27.                         out.println("<tr><th>"+data.getDatabaseProductName()+"</th></tr>" );
  28.                         out.println("<tr><td>"+
  29.                                         data.getDatabaseProductVersion()+"</td></tr>" );
  30.                         out.println("<tr><td>"+ data.getDriverName()+"</td></tr>" );
  31.                         out.println("<tr><td>"+
  32.                                         data.getDriverVersion()+"</td></tr>" );
  33.                         for (int i : intdatas) {
  34.                                 out.print("<tr><td>" );
  35.                                 out.print(i);
  36.                                 out.println("</td><tr>" );
  37.                         }
  38.                         out.println("</table>" );
  39.                 } catch (NamingException e) {
  40.                         log("Cannot find anything in JNDI named "+jndiname + "  " + e.getMessage());
  41.                 } catch (SQLException e) {
  42.                         log("Got an SQL exeption "+e.getMessage());
  43.                 }
  44.         }


 
Et l'erreur viens de la ligne 17  :(

Reply

Marsh Posté le 06-02-2006 à 22:40:05    

je viens de tester ma base en php donc je suis sur que c pas a ce niveau je me demande maintenant si ca vient pas de la config au niveau du fichier server.xml

Code :
  1. <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/dbtest" password="test" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/dbtest" username="celestin"/>


 est la bonne url ??? Comment verifier ca ???

Reply

Marsh Posté le 09-02-2006 à 15:13:47    

Bon ca serai un probleme de connection de mysql une histoire de droits normalement
Mais je comprend toujours pas car j'ai essayé avec l'utilisateur root de mysql et toujours rien.
 
Là je connais quelqu'un qui a reussi avec msql 5 (moi je suis avec la 4) donc je vais tester ca ...

Reply

Marsh Posté le 09-02-2006 à 15:16:58    

Bon meme avec ca :

Code :
  1. Class.forName("com.mysql.jdbc.Driver" ).newInstance();
  2. Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ilidb", "mysql", "mysql" );


 
ca fonctionne toujours pas !!!
Donc je suis pratiquement sur que c'est une histoire de droits

Reply

Sujets relatifs:

Leave a Replay

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